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

Mark Lord
2008-01-03T04:18:56Z

Pallipadi, Venkatesh wrote:
>
>
>> -----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.
..

As noted, I already do that. It helps with my Core2Duo machine,
but not with the single-core case. Bummer.

-ml