radeon: writeback-issues since kernel 2.6.34 on ATI FireMV 2200 PCI

Helge Deller deller at gmx.de
Mon Jan 2 14:07:52 PST 2012


I'm facing the problem with the radeon drm driver, that I now manually 
need to set the kernel module parameter radeon.no_wb to 1 at bootup, 
else X just hangs in average up to 8 seconds per minute without any real 
activity (X or the video driver just seems to wait for something..).

Fedora 13 (kernel 2.6.34.9-69.fc13.x86_64) worked without problems, 
while all following Fedora distributions including F16 have this problem.
I'm using a dual-DVI ATI RV280 [FireMV 2200 PCI].

I did compared the sources of those kernels and the only obvious change 
to me is in radeon_ring.c: radeon_ring_free_size() where those lines 
were added at the top of the function:
         if (rdev->wb.enabled)
                 rdev->cp.rptr = 
le32_to_cpu(rdev->wb.wb[RADEON_WB_CP_RPTR_OFFSET/4]);

Given the problems I'm seeing (X-Windows hangs for a few seconds every 
time) this fits with the idea, that the driver is waiting for a free 
slot but can't find any (maybe due to wrong values returned by 
not-working WB?).

I'm wondering, if "rdev->wb.enabled" is correct in this place and if 
"dev_priv->writeback_works" shouldn't be used instead here?

Helge



More information about the dri-devel mailing list