From: Michel <mi...@da...> - 2002-01-26 16:22:43
|
On Sam, 2002-01-26 at 06:13, Peter Surda wrote: > Sorry that I'm not sending a patch, but I don't know if my solution is > correct. A patch might help to make a judgement. ;) > Problem description (both with dri from CVS dri and CVS gatos): on r128 w= hen I > KDE is starting, display is corrupt and lots of: > Jan 26 04:38:38 ten kernel: [drm:r128_cce_indirect] *ERROR* process 15795= using buffer owned by 0 > 's > appear (I reported this several months ago already). >=20 > So I looked at the code: pid 0 doesn't exist, and r128 driver seems to be > using it for optimizing searches for free buffer. So I added a=20 > "buf->pid > 0 &&" > into r128_state.c into all tests where it was tested. This fixed most > corruption, but then > Jan 26 05:03:28 ten kernel: [drm:r128_cce_indirect] *ERROR* sending pendi= ng buffer 0 > 's started appearing.=20 >=20 > Further investigations showed r128 and radeon where the only driver that > actually did a buf->pending =3D 1, so I changed it to 0 and now the sympt= oms > aren't ocurring anymore. Your changes sound dangerous. :) You're basically removing the tests for the errors, or am I missing something? I've also experienced the problem with gdm, when I log out of a GNOME session. I suspect something (the freelist apparently?) doesn't get properly reset when starting a new X server generation. Let's investigate more. > Supplemental question: I noticed that while watching videos X often takes= lot > of CPU EVEN when DMACopyblahblah is working (I added a xDrvMsg to the > driver to test). The funny thing is that e.g. with mplayer X eats about 6= %, > and ON THE SAME FILE, with aviplay X eats about 25%. What could be causin= g > this? BTW this doesn't happen always, just "mostly" and I am unable to > reproduce a situation when this doesn't happen, it simply sometimes "fixe= s > itself". No idea about this, could you do some profiling to see where the time is wasted? --=20 Earthling Michel D=E4nzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast |