On Sun, 2009-09-06 at 22:53 +0800, Li, Aubrey wrote: > Sebastien.Roy <> wrote: > > > On Sun, 2009-09-06 at 13:39 +0800, Aubrey Li wrote: > >> okay, thanks but need your another help. > >> > >> I did a quick investigation and found that there is a xorg related > >> kthread causing > >> the scheduler ping-pong between "idle" thread and this xorg related > >> thread. > >> > >> Could you please disable X by "pfexec svcadm disable gdm" and try > >> powertop again? > >> Please make sure you are still using event mode, not poll-mode. > > > > With no Xorg, and with event mode, powertop indeed shows that the > > system remains mostly in the lowest P-state. > > Sounds good, it looks like we found the cause. Thanks for the validation!
I Cc'ed Alan Coopersmith, maybe he can help with pointers on how to root-cause this. I don't think we've found the cause. We've only determined that _something_ is causing Xorg to do stuff on an idle system... > > > I'm still a bit confused as to why poll and event modes would show > > different results when Xorg is running... > > As I said, event mode is more aggressive. The load of Xorg is enough to > drive p-state transition under event mode but it is ignored in the poll mode. Okay. > > > > > Is there a CR filed against Xorg that I can look at? > > I wonder, is this a regression? With Xorg, did powertop report 100% highest > p-state residency on b121 and previous version? That's a yes for build 121, but powertop didn't work at all in the other builds I had running on this laptop (something about missing dtrace probes). I don't remember noticing this until recently, so it's possible that this was introduced at some point after build 118 (the build I had running before 121). > If this is a regression, we need to ask Xorg guys what they did to hurt > idle power, :) Or at least some help root-causing this. We don't know if the cause is the X server or a client issuing X requests for no reason (I suspect it's the latter)... I wrote a little dtrace script that dumps X requests, and on an idle system, I see hundreds of X requests every second from X client ID 43. Now how do I map that to a process ID? -Seb