RE: + restore-missing-sysfs-max_cstate-attr.patch added to -mm tree

Pallipadi, Venkatesh
2008-01-04T21:58:17Z

>-----Original Message-----
>From: Mark Lord [mailto:lkml@rtr.ca]
>Sent: Friday, January 04, 2008 1:53 PM
>To: Pallipadi, Venkatesh
>Cc: Arjan van de Ven; Andrew Morton; abelay@novell.com;
>lenb@kernel.org; Ingo Molnar; linux-kernel@vger.kernel.org;
>linux-acpi@vger.kernel.org; rjw@sisk.pl
>Subject: Re: + restore-missing-sysfs-max_cstate-attr.patch
>added to -mm tree
>
>Mark Lord wrote:
>> Venki Pallipadi wrote:
>>> Reintroduce run time configurable max_cstate for !CPU_IDLE case.
>>>
>>> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
>>>
>>> Index: linux-2.6.24-rc/drivers/acpi/processor_idle.c
>>> ===================================================================
>>> --- linux-2.6.24-rc.orig/drivers/acpi/processor_idle.c
>>> +++ linux-2.6.24-rc/drivers/acpi/processor_idle.c
>>> @@ -76,7 +76,11 @@ static void (*pm_idle_save) (void) __rea
>>> #define PM_TIMER_TICKS_TO_US(p) (((p) *
>>> 1000)/(PM_TIMER_FREQUENCY/1000))
>>>
>>> static unsigned int max_cstate __read_mostly =
>ACPI_PROCESSOR_MAX_POWER;
>>> +#ifdef CONFIG_CPU_IDLE
>>> module_param(max_cstate, uint, 0000);
>>> +#else
>>> +module_param(max_cstate, uint, 0644);
>>> +#endif
>>> static unsigned int nocst __read_mostly;
>>> module_param(nocst, uint, 0000);
>>>
>> ..
>>
>> I'll try and re-test with this on Friday.
>..
>
>Okay, with !CONFIG_CPU_IDLE, this works fine -- same as 2.6.23
>and earlier.
>

Good to know. Atleast we do not have a regression for 2.6.24 now.

>> Meanwhile, can you give a short summary of how behaviour differs
>> between CONFIG_CPU_IDLE and !CONFIG_CPU_IDLE ??
>>
>> I'm not at all clear on how this really affects things.
>

With CPU_IDLE, the C-state policy is removed from acpi driver. Ideally
policy should have nothing to do with ACPI, as ACPI only provides the
C-state mechanisms. So, with CPU_IDLE, it is not easy to control this
variable through a acpi driver module at run time. Also, the latency
interface that was mentioned before is to serve the same purpose in a
more clear manner (based on the wakeup latency) instead of a C-state
number which may not mean much from the end user point of view.

I will look at why latency does not work on a single core system
soon(Was that with UP kernel or SMP kernel?). That way we will have a
proper cover for this with CPU_IDLE in future.

Thanks,
Venki