Hi Rafael,
Here is the third version based on the review comments you gave. I have tried to resolve most of them, and it looks much better now. Thanks for your comments.
As I am traveling this week, don't have access to hardware to retest the series. But I am quite sure it should work just fine, as there weren't lots of updates from how the final code looked earlier. Anyway, I have pushed this for the build bot sometime back and it will let us know of any obvious issues.
V2->V3: - Few got merged already, and are dropped now - Patches are reordered a bit to make them more sensible - gov_queue_work() isn't modified at all with the mask of CPUs, as you suggested earlier. - Some minor commit/logs updated.
V1->V2: - Dropped 2/10 from V1 as it wasn't required - 3/10 saw some changes due to above patch being dropped - 7/10 changed a bit as we check for pending work items by looking at shared->policy, rather than calling delayed_work_pending. We wanted to check if governor is operational or not and the new check is enough for that.
Viresh Kumar (5): cpufreq: ondemand: Drop unnecessary locks from update_sampling_rate() cpufreq: ondemand: update sampling rate immediately cpufreq: ondemand: queue work for policy->cpus together cpufreq: governor: Quit work-handlers early if governor is stopped cpufreq: Get rid of ->governor_enabled and its lock
drivers/cpufreq/cpufreq.c | 24 ------------------ drivers/cpufreq/cpufreq_governor.c | 33 +++++++++++++++++-------- drivers/cpufreq/cpufreq_ondemand.c | 50 ++++++++++++-------------------------- include/linux/cpufreq.h | 1 - 4 files changed, 39 insertions(+), 69 deletions(-)