On Friday, June 19, 2015 05:18:00 PM Viresh Kumar wrote:
Hi Rafael/Preeti,
This is another attempt to fix the crashes reported by Preeti. They work quite well for me now, and I hope they would work well for Preeti as well :)
So, patches [1-7,9] are already Reviewed by Preeti.
The first 5 patches are minor cleanups, 6th & 7th try to optimize few things to make code less complex.
Patches 8-10 actually solve (or try to solve :)) the synchronization problems, or the crashes I was getting.
V1->V2:
- 7/11 is dropped and only 8/11 is updated, which is 8/10 now.
- Avoid taking the same mutex in both cpufreq_governor_dbs() and work-handler as that has given us some locdeps, classic ABBA stuff.
- And so timer_mutex, responsible for synchronizing governor work-handlers is kept as is.
- Later patches are almost same with minor updates.
- Invalid state-transitions are sensed better now with improved checks.
- I have run enough tests on my exynos dual core board and failed to crash at all. Not that I wanted to crash :)
Rebased over pm/bleeeding-edge.
Viresh Kumar (10): cpufreq: governor: Name delayed-work as dwork cpufreq: governor: Drop unused field 'cpu' cpufreq: governor: Rename 'cpu_dbs_common_info' to 'cpu_dbs_info' cpufreq: governor: name pointer to cpu_dbs_info as 'cdbs' cpufreq: governor: rename cur_policy as policy cpufreq: governor: Keep single copy of information common to policy->cpus cpufreq: governor: split out common part of {cs|od}_dbs_timer() cpufreq: governor: Avoid invalid states with additional checks cpufreq: governor: Don't WARN on invalid states cpufreq: propagate errors returned from __cpufreq_governor()
drivers/cpufreq/cpufreq.c | 22 ++-- drivers/cpufreq/cpufreq_conservative.c | 25 ++--- drivers/cpufreq/cpufreq_governor.c | 196 ++++++++++++++++++++++++--------- drivers/cpufreq/cpufreq_governor.h | 40 ++++--- drivers/cpufreq/cpufreq_ondemand.c | 67 ++++++----- 5 files changed, 220 insertions(+), 130 deletions(-)
So as I said before, I'm not regarding this as 4.2 material.
The fact that you manage to send your stuff before the merge window opens doesn't automatically mean that it has to go in during that merge window.