On 11/11/2015 05:02 PM, Steve Muckle wrote:
I'm using the EASv5 3.18 tree with cpufreq_sched. With the sched
governor enabled I've noticed that after a migration or after a switch from a non-fair task to the idle task, the source CPU goes idle and its (possibly max) capacity request stays in place, preventing other requests from going through until that source CPU decides to wake up and take up some work.
I haven't been able to reconcile this behavior with the code. There are hooks in dequeue_task_fair and the migration paths that should update the CFS capacity vote if the CPU CFS runqueue is empty.
There's a bit of strangeness in cpufreq_sched where the CPU driving the max request in the cluster must be the one to set the new OPP. Not sure if this could be related to what you're seeing. I'm about to send out another email on it as I want to take that logic out.