Regression 2.6.27 -> 2.6.28

Jörg-Volker Peetz 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 2.6.28.1 while in X with active DPMS screen off ("xset
>>>>>> dpms force off") the CPU does not go into C3 state when idle.
>>>>>> With 2.6.27.10 and 2.6.27.12 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:

With

  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

  ./autogen.sh
  make

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
compiled ones.

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 =
0x5460)
 ...
       (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
671,672c671,672
<     /*    if (mode == DPMSModeOff)
<           radeon_crtc_modeset_ioctl(crtc, FALSE); */
---
>     if (mode == DPMSModeOff)
> 	radeon_crtc_modeset_ioctl(crtc, FALSE);
710c710
<       /* radeon_crtc_modeset_ioctl(crtc, TRUE); */
---
> 	radeon_crtc_modeset_ioctl(crtc, TRUE);

the wakeups stayed below 5/s after xset dpms force off.

-- 
Best regards,
Jörg-Volker.



More information about the xorg-driver-ati mailing list