Messages in this thread | | | Date | Mon, 11 May 2015 16:13:37 +0100 | From | Sudeep Holla <> | Subject | Re: [PATCH 0/3] cpuidle: updates related to tick_broadcast_enter() failures |
| |
On 10/05/15 00:15, Rafael J. Wysocki wrote: > On Saturday, May 09, 2015 10:33:05 PM Rafael J. Wysocki wrote: >> On Saturday, May 09, 2015 10:11:41 PM Rafael J. Wysocki wrote: >>> On Saturday, May 09, 2015 11:19:16 AM Preeti U Murthy wrote: >>>> Hi Rafael, >>>> >>>> On 05/08/2015 07:48 PM, Rafael J. Wysocki wrote: >>> >>> [cut] >>> >>>>>> >>>>>> + /* Take note of the planned idle state. */ >>>>>> + idle_set_state(smp_processor_id(), target_state); >>>>> >>>>> And I wouldn't do this either. >>>>> >>>>> The behavior here is pretty much as though the driver demoted the state chosen >>>>> by the governor and we don't call idle_set_state() again in those cases. >>>> >>>> Why is this wrong? >>> >>> It is not "wrong", but incomplete, because demotions done by the cpuidle driver >>> should also be taken into account in the same way. >>> >>> But I'm seeing that the recent patch of mine that made cpuidle_enter_state() >>> call default_idle_call() was a mistake, because it might confuse find_idlest_cpu() >>> significantly as to what state the CPU is in. I'll drop that one for now. >> >> OK, done. >> >> So after I've dropped it I think we need to do three things: >> (1) Move the idle_set_state() calls to cpuidle_enter_state(). >> (2) Make cpuidle_enter_state() call default_idle_call() again, but this time >> do that *before* it has called idle_set_state() for target_state. >> (3) Introduce demotion as per my last patch. >> >> Let me cut patches for that. > > Done as per the above and the patches follow in replies to this messge. > > All on top of the current linux-next branch of the linux-pm.git tree. >
Tested on ARM Vexpress platforms with one of the CPU in broadcast mode and also with broadcast timer. So, you can add:
Tested-by: Sudeep Holla <sudeep.holla@arm.com>
Regards, Sudeep
| |