Re: (ondemand) CPU governor regression between 2.6.23 and 2.6.24

From: Toralf Förster
Date: Sun Jan 27 2008 - 10:06:40 EST


Am Sonntag, 27. Januar 2008 schrieb Srivatsa Vaddagiri:
> On Sat, Jan 26, 2008 at 07:46:51PM +0100, Toralf Förster wrote:
> >
> > The problem is the same as described here : http://lkml.org/lkml/2007/10/21/85
> > If I run dnetc even with lowest prority than the CPU stays at 600 MHz regardless
> > of any other load (eg. rsyncing, svn update, compiling, ...)
> >
> > Stopping the dnetc process immediately speeds up the CPU up to 1.7 GHz.
> >
> >
> > Am Samstag, 26. Januar 2008 schrieben Sie:
> > > During the test, run top, and watch your CPU usage. Does it go above 80%
> > > (the default for
> > > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold).
> >
> > No, instead I get :
> >
> > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
> > 7294 dnetc 39 19 664 348 264 R 49.5 0.0 0:48.68 dnetc
> > 7310 tfoerste 20 0 1796 492 428 R 48.5 0.0 0:07.19 factor
> > 7050 root 20 0 96736 8872 3972 S 0.7 0.9 0:02.99 X
>
> Hi Toralf,
> Can you list the o/p you see for overall cpu usage? You should
> see something like below right at the top of the o/p:
>
> top - 20:03:59 up 12 days, 21:39, 18 users, load average: 0.22, 0.20, 0.25
> Tasks: 200 total, 5 running, 193 sleeping, 0 stopped, 2 zombie
> Cpu(s): 2.6% us, 1.3% sy, 0.0% ni, 96.0% id, 0.0% wa, 0.0% hi, 0.0% si, 0.0% st
>
> The third line (giving overall cpu usage stats) is what is interesting here.
> If you have more than one cpu, you can get cpu usage stats for each cpu
> in top by pressing 1. Can you provide this information with and w/o
> CONFIG_FAIR_GROUP_SCHED?

This is what I get if I set CONFIG_FAIR_GROUP_SCHED to "y"

top - 16:00:59 up 2 min, 1 user, load average: 2.56, 1.60, 0.65
Tasks: 84 total, 3 running, 81 sleeping, 0 stopped, 0 zombie
Cpu(s): 49.7%us, 0.3%sy, 49.7%ni, 0.0%id, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st
Mem: 1036180k total, 322876k used, 713304k free, 13164k buffers
Swap: 997880k total, 0k used, 997880k free, 149208k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6070 dnetc 39 19 664 348 264 R 49.7 0.0 1:09.71 dnetc
6676 tfoerste 20 0 1796 488 428 R 49.3 0.0 0:02.72 factor

Stopping dnetc gives:

top - 16:02:36 up 4 min, 1 user, load average: 2.50, 1.87, 0.83
Tasks: 89 total, 3 running, 86 sleeping, 0 stopped, 0 zombie
Cpu(s): 99.3%us, 0.7%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1036180k total, 378760k used, 657420k free, 14736k buffers
Swap: 997880k total, 0k used, 997880k free, 180868k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6766 tfoerste 20 0 1796 488 428 R 84.9 0.0 0:05.41 factor


> If I am not mistaken, cpu ondemand gov goes by the cpu idle time stats,
> which should not be affected by FAIR_GROUP_SCHED. I will lookaround for
> other possible causes.

As I stated our in http://lkml.org/lkml/2008/1/26/207 the issue is solved
after unselecting FAIR_GROUP_SCHED.

BTW my answer to an email of Mike Galbraith was Cced to the lkml here :
http://lkml.org/lkml/2008/1/27/116

--
MfG/Sincerely

Toralf Förster
pgp finger print: 7B1A 07F4 EC82 0F90 D4C2 8936 872A E508 7DB6 9DA3

Attachment: signature.asc
Description: This is a digitally signed message part.