[linux-pm] [PATCH 1/3] cpuidle/powernv: cpuidle backend driver for powernv

Deepthi Dharwar deepthi at linux.vnet.ibm.com
Tue Jul 30 13:51:35 EST 2013


On 07/29/2013 08:23 PM, Daniel Lezcano wrote:
> On 07/29/2013 04:39 PM, Deepthi Dharwar wrote:
>> Hi Daniel,
>>
>> On 07/27/2013 10:57 AM, Daniel Lezcano wrote:
>>> On 07/23/2013 11:01 AM, Deepthi Dharwar wrote:
>>>> This patch implements a back-end cpuidle driver for
>>>> powernv calling power7_nap and snooze idle states.
>>>> This can be extended by adding more idle states
>>>> in the future to the existing framework.
>>>>
>>>> Signed-off-by: Deepthi Dharwar <deepthi at linux.vnet.ibm.com>
> 
> [ ... ]
> 
>>>> +static int snooze_loop(struct cpuidle_device *dev,
>>>> +			struct cpuidle_driver *drv,
>>>> +			int index)
>>>> +{
>>>> +	int cpu = dev->cpu;
>>>> +
>>>> +	local_irq_enable();
>>>> +	set_thread_flag(TIF_POLLING_NRFLAG);
>>>> +
>>>> +	while ((!need_resched()) && cpu_online(cpu)) {
>>>> +		ppc64_runlatch_off();
>>>> +		HMT_very_low();
>>>> +	}
>>>
>>> Why are you using the cpu_online test here ?
>>
>> Snooze state is an idle state where cpu executes an infinite loop by
>> reducing the priority of the thread and the idle cpu can come out of it
>> only if need_resched is set or in case the cpu is offlined. In order to
>> continue executing this loop to remain in this idle state, we need the
>> check just to be safe.
> 
> Yes, but if the cpu is offline you are no longer executing this code, no ?
> 

Yes, not needed.

Thanks !
Deepthi



More information about the Linuxppc-dev mailing list