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

Pallipadi, Venkatesh
2008-01-03T00:06:06Z

>-----Original Message-----
>From: Mark Lord [mailto:lkml@rtr.ca]
>Sent: Wednesday, January 02, 2008 3:42 PM
>To: Arjan van de Ven
>Cc: Pallipadi, Venkatesh; Andrew Morton; abelay@novell.com;
>lenb@kernel.org; Ingo Molnar; linux-kernel@vger.kernel.org;
>linux-acpi@vger.kernel.org
>Subject: Re: + restore-missing-sysfs-max_cstate-attr.patch
>added to -mm tree
>
>Arjan van de Ven wrote:
>> On Fri, 30 Nov 2007 22:31:17 -0500
>> Mark Lord <lkml@rtr.ca> wrote:
>>
>>> Arjan van de Ven wrote:
>>>> On Fri, 30 Nov 2007 22:14:08 -0500
>>>> Mark Lord <lkml@rtr.ca> wrote:
>>>>
>>>>>> in -mm there is.. the QoS stuff allows you to set maximum
>>>>>> tolerable
>>>>> ..
>>>>>
>>>>> That's encouraging, I think, but not for 2.6.24.
>>>>>
>>>>>> latency. If your app cant take any latency, you should set
>>>>>> those... and the side effect is that the kernel will not do
>>>>>> long-latency C-states or P-state transitions..
>>>>> ..
>>>>>
>>>>> I don't mind the cpufreq changing (actually, I want it to drop in
>>>>> cpugfreq to save power and keep the fan off), but the
>C-states just
>>>>> kill this app.
>>>>>
>>>>> The app is VMware. I force the max_state=1 when launching,
>>>> ah but then its' even easier... and can be done in 2.6.24 already.
>>>> VMWare after all has a kernel module, and the latency stuff is in
>>>> 2.6.23 and 2.6.24 available inside the kernel already.
>>> ..
>>>
>>> Oh, I'm perfectly happy to write my own kernel module if that's what
>>
>> all you need to do in your kernel module is call
>>
>> add_latency_constraint("mark_wants_his_mouse", 5);
>>
>> or so
>..
>
>Dredging up an old regression again now:
>
>The "make my own module to replace /sys/.../max_cstate" doesn't work
>for the single-core machine we use a lot around here.
>
>VMware is totally sluggish unless I go to another text window
>and do this:
>
> while ( true ); do echo -n ; done
>
>At which point VMware performs well again,
>the same as with "echo 1 > max_cstate" in 2.6.23.
>
>Anyone got any suggestions on how to fix this regression
>or work around it for 2.6.24 ?
>

Easiest and clean way to do it is to have a driver with
set_acceptable_latency() for 1uS or so in init and
remove_acceptable_latency() at exit.

Thanks,
Venki