I have a nice, 100% reliable way to lock up my Radeon 7500 using the most recent CVS. I can do this with Tux Racer, if I play for a couple of courses, but it's much easier to do using the Neverwinter Nights Toolset beta running under WINE, because that's really quite intensive and produces the lockup in about 5 seconds (much longer if debugging is enabled, which seems interesting). This was stable with the drivers in XFree 4.2, except that they would fail to texture things (e.g. the penguin in Tux Racer was a white blob).
I've played around with *all* the radeon driver options in XF86Config, to no significant effect (well I managed to lock X on startup with a too-high CPusecTimeout :-). It won't let me assign more than 2MB to BufferSize and I presume there's a good reason for that, so 32 buffers seems the maximum unless the size of each buffer can be reduced. How much of that 64K gets used? Is it worth trying that? lspci tells me: 00:00.0 Host bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133] (rev 03) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22) 00:07.1 IDE interface: VIA Technologies, Inc. Bus Master IDE (rev 10) 00:07.2 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:07.3 USB Controller: VIA Technologies, Inc. USB (rev 10) 00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 30) 00:09.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 04) 00:09.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 01) 00:0b.0 SCSI storage controller: Adaptec AHA-7850 (rev 01) 00:0d.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 08) 00:13.0 Unknown mass storage controller: Triones Technologies, Inc. HPT366 / HPT370 (rev 03) 01:00.0 VGA compatible controller: ATI Technologies Inc Radeon 7500 QW I've got several yards of logs, but I'm not sure how much to post. I hope this sample is sufficient. Looking at the whole it seems that 'radeon_freelist_get' is having to do more and more work to find a free buffer. It starts out finding one on the first pass, but has to skip more and more as time goes on. Then it gets into its degenerate case and has to start looping hoping the card will have finished with one, which works for a while until it finally hits the dreaded kernel: [drm:radeon_freelist_get] *ERROR* returning NULL! and everything goes pear-shaped. May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=20 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=21 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=22 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=23 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=24 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=25 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=26 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=27 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=28 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=29 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=30 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=31 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] ret buf=7 last=7 age=201025 done=201183 May 24 00:11:55 moomintroll kernel: [drm:radeon_ioctl] pid=3230, cmd=0xc004644d, nr=0x4d, dev 0xe200, auth=1 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_indirect] indirect: idx=7 s=0 e=240 d=0 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=7 s=0x0 e=0xf0 May 24 00:11:55 moomintroll kernel: [drm:radeon_ioctl] pid=3230, cmd=0xc004644d, nr=0x4d, dev 0xe200, auth=1 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_indirect] indirect: idx=7 s=240 e=488 d=0 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=7 s=0xf0 e=0x1e8 May 24 00:11:55 moomintroll kernel: [drm:radeon_ioctl] pid=3230, cmd=0xc004644d, nr=0x4d, dev 0xe200, auth=1 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_indirect] indirect: idx=7 s=488 e=504 d=1 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=7 s=0x1e8 e=0x1f8 May 24 00:11:55 moomintroll kernel: [drm:radeon_ioctl] pid=3230, cmd=0x6444, nr=0x44, dev 0xe200, auth=1 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_idle] radeon_cp_idle May 24 00:11:55 moomintroll kernel: [drm:radeon_do_cp_idle] radeon_do_cp_idle May 24 00:11:55 moomintroll kernel: [drm:radeon_ioctl] pid=3230, cmd=0xc0286429, nr=0x29, dev 0xe200, auth=1 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=0 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=1 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=2 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=3 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=4 pid=3230 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=5 pid=3230 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=6 pid=3230 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=7 pid=3230 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=8 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=9 pid=3235 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=10 pid=3230 May 24 00:11:55 moomintroll kernel: [drm:radeon_freelist_get] skipping buf=11 pid=3235 *** Somewhere between here and the next (corrupted) line lies the "ERROR returning NULL!" line. I know this because it shows up with this timestamp in the less detailed syslog I send to a remote machine. I tried sending all this there but it dropped too much on the floor to be useful. May 24 00:11:55 moomintroll kernel: indirect: buf=13 s=0x7280 e=0x733c May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indices] indices: start=7700/7714 end=7774 count=48 nv 13773 offset 41d9340 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_clip_rect] box: x1=544 y1=357 x2=1124 y2=906 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=13 s=0x7700 e=0x7774 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indices] indices: start=7b40/7b54 end=7bcc count=60 nv 13790 offset 41d9780 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_clip_rect] box: x1=544 y1=357 x2=1124 y2=906 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=13 s=0x7b40 e=0x7bcc May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indices] indices: start=7f80/7f94 end=8000 count=54 nv 13808 offset 41d9c00 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_clip_rect] box: x1=544 y1=357 x2=1124 y2=906 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=13 s=0x7f80 e=0x8000 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indices] indices: start=8420/8434 end=84d6 count=81 nv 13824 offset 41da000 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_clip_rect] box: x1=544 y1=357 x2=1124 y2=906 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=13 s=0x8420 e=0x84d6 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_vertex] radeon_cp_dispatch_vertex: nbox=1 34008..34776 prim 4 nvert 24 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_clip_rect] box: x1=544 y1=357 x2=1124 y2=906 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indices] indices: start=8c20/8c34 end=8cd6 count=81 nv 13856 offset 41da800 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_clip_rect] box: x1=544 y1=357 x2=1124 y2=906 May 24 00:11:55 moomintroll kernel: [drm:radeon_cp_dispatch_indirect] indirect: buf=13 s=0x8c20 e=0x8cd6 May 24 00:11:55 moomintroll kernel: [drm:radeon_emit_state] radeon_emit_state: dirty=0x00000201 ...and after more of the same I reboot -- Tim Smith ([EMAIL PROTECTED]) Interfere? Of course we should interfere! Always do what you're best at, that's what I say. -- Doctor Who _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel
