[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#193127: xserver-xfree86: Radeon 7500 - dri hangs system with ALI motherboard



On Thu, May 15, 2003 at 08:58:32AM -0700, Elladan wrote:
> On Thu, May 15, 2003 at 11:39:25AM +0200, Michel D?nzer wrote:
> 
> > Anyway, you may want to try the snapshots described in
> > http://dri.sourceforge.net/snapshots/README.Debian . You can even try
> > without AGP with those using Option "ForcePCIMode". You'll need to build
> > the DRM from drm-trunk-module-src though.
> 
> If I can find some time, and a proper cable, I'll attempt to get some
> kernel information out through serial console, I guess.

Ok, I was able to grab some SysRQ information over serial console.  I'm
not sure how useful it is, though.  This is using a build of XFree
4.3.0, because it takes longer to crash...

>From what I was able to glean from it, it looks like the X server is
blocked in radeon_lock, and it looks like glxgears is stuck in a loop
doing a lot of ioctl(DRM_IOCTL_RADEON_GETPARAM) calls.  This explains
the livelock in 4.3.0.  4.2 just crashes instead.

For kicks, I tried kill -BUS on XFree after killing glxgears.  The
system seemed to take a second or two to lock up, and this was printed
on the console first:

[drm:radeon_cp_idle] *ERROR* radeon_cp_idle called without lock held


[drm] AGP 0.99 aperture @ 0xf0000000 128MB
[drm] Initialized radeon 1.7.0 20020828 on minor 0
PCI: Found IRQ 11 for device 01:00.0
PCI: Sharing IRQ 11 with 00:0c.0
SysRq : Show State
                         free                        sibling
  task             PC    stack   pid father child younger older
[...]
XFree86       S DBAC6560     0   752    685                     (NOTLB)
Call Trace:    [<e09069de>] [<e09068a3>] [<e0906800>] [<c0145e40>] [<c010733f>]

--> radeon_lock / radeon_ioctl / radeon_ioctl (??) / sys_ioctl /
    system_call


glxgears      R current   2656   760    755                     (NOTLB)
Call Trace:    [<c0145e14>] [<c010733f>]

--> sys_ioctl / system_call

SysRq : Show Regs

Pid: 760, comm:             glxgears
EIP: 0023:[<4042f9ab>] CPU: 0 ESP: 002b:bffff9f0 EFLAGS: 00200246    Not tainted
EAX: 00000000 EBX: 42498000 ECX: c0086451 EDX: bffffa10
ESI: 40012898 EDI: 00400002 EBP: bffffa18 DS: 002b ES: 002b
CR0: 8005003b CR2: 4013da40 CR3: 1c22f000 CR4: 000006d0


If I strace glxgears, I find that the ioctl it's stuck in a loop on is:

ioctl(4, 0xc0086451, 0xbffffb50) returns 0

I looked up this ioctl, the call is:

ioctl(4, DRM_IOCTL_RADEON_GETPARAM, pointer);






Reply to: