Regression 2.6.27 -> 2.6.28
jvpeetz at web.de
Fri Jan 30 11:52:37 PST 2009
Michel Dänzer wrote:
> On Thu, 2009-01-29 at 20:04 +0100, Jörg-Volker Peetz wrote:
>> Michel Dänzer wrote:
>>> On Tue, 2009-01-27 at 21:38 +0100, Jörg-Volker Peetz wrote:
>>>> Michel Dänzer wrote:
>>>>> On Sun, 2009-01-25 at 20:03 +0100, Jörg-Volker Peetz wrote:
>>>>>> with kernel 2.6.28 and 184.108.40.206 while in X with active DPMS screen off ("xset
>>>>>> dpms force off") the CPU does not go into C3 state when idle.
>>>>>> With 220.127.116.11 and 18.104.22.168 the CPU does fall into C3 state when idle as
>>>>>> observed with powertop 1.11.
>>>>> Was the DRI already enabled with the 2.6.27 kernels? If yes, you may
>>>>> need to use git bisect to find the change that introduced the problem.
>>>> DRI was enabled both on 2.6.27 and 2.6.28.
>>>> Today I also checked another hardware, a laptop with Pentium M CPU, Intel
>>>> chipset ICH6, and ATI M22 [Mobility Radeon X300]. Similar behavior: while in X
>>>> with active DPMS screen off ("xset dpms force off") there are nearly 60
>>>> wakeups/s instead of 3 wakeups/s with DPMS disabled.
>>>> I've not done a git bisect before. It will take me a while.
>>> FWIW, I think it's most likely related to commit
>>> 0a3e67a4caac273a3bfc4ced3da364830b1ab241 ('drm: Rework vblank-wait
>>> handling to allow interrupt reduction.') and friends. Can you try
>>> reverting that and seeing if the problem still happens?
>> You were right. I did the "git bisect good 2.6.27 bad 2.6.28" and the outcome is
>> 0a3e67a4caac273a3bfc4ced3da364830b1ab241 is first bad commit
> Thanks for taking the time to confirm this!
> I think this may actually be an X driver issue though; apparently it's
> telling the kernel that the CRTC is disabled, but the CRTC is obviously
> still generating vertical blank interrupts.
>> xserver-xorg-video-radeon 1:6.9.0-1+lenny4
> Can you try if the problem persists with current xf86-video-ati Git or
> at least the 6.10.0 release? If so, does disabling the
> radeon_crtc_modeset_ioctl() calls in legacy_crtc_dpms() in
> xf86-video-ati/src/legacy_crtc.c avoid the problem?
> (Alex, do you know or can you find out under what circumstances exactly
> the CRTC frame counter registers reset to 0?)
You were right again:
git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-ati
I received version xf86-video-ati-6.10.0-56-g3a6e958, as "git describe" tells.
In xf86-video-ati I did
and replaced /usr/lib/xorg/modules/drivers/radeon_drv.so and
/usr/lib/xorg/modules/multimedia/theatre*_drv.so on my system by the just
After restart of the X server the following lines appeared in /var/log/Xorg.0.log:
compiled for 1.4.2, module version = 6.10.0
(--) RADEON(0): Chipset: "ATI Radeon Mobility X300 (M22) 5460 (PCIE)" (ChipID =
(II) RADEON(0): Direct rendering enabled
The number of wakeups still raised to over 60/s after xset dpms force off.
But with radeon_crtc_modeset_ioctl() calls in legacy_crtc_dpms() in
xf86-video-ati/src/legacy_crtc.c disabled like this:
$ diff legacy_crtc.c legacy_crtc.c.orig
< /* if (mode == DPMSModeOff)
< radeon_crtc_modeset_ioctl(crtc, FALSE); */
> if (mode == DPMSModeOff)
> radeon_crtc_modeset_ioctl(crtc, FALSE);
< /* radeon_crtc_modeset_ioctl(crtc, TRUE); */
> radeon_crtc_modeset_ioctl(crtc, TRUE);
the wakeups stayed below 5/s after xset dpms force off.
More information about the xorg-driver-ati