Xorg hangs with drmwtq in 7.2-RELEASE

Robert Noland rnoland at FreeBSD.org
Tue May 12 15:18:24 UTC 2009


On Sat, 2009-05-09 at 18:41 -0700, David Johnson wrote:
> On Friday 08 May 2009 03:31:04 pm Robert Noland wrote:
> > In order to guess what might be causing this, drm debugging needs to be
> > enabled before the hang, so that we can hopefully figure out what leads
> > up to the hung GPU.
> 
> I'm not able to do that, but I did manage to get debug turned on and dmesg
> captured early enough to catch some additional information. I've place the
> full file online at http://www.usermode.org/misc/dmesg.txt, but am including
> some snippets here. Hopefully this is enough to move forward.
> 
> -- 
> David Johnson

This trace still looks odd...

> ...
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0xc0286429, nr=0x29, dev 0xc615fa00, auth=1
> [drm:pid1822:radeon_freelist_get] done_age = 102778

Things appear to be working at this point.

> [drm:pid1822:drm_ioctl] pid=1822, cmd=0xc010644d, nr=0x4d, dev 0xc615fa00, auth=1
> [drm:pid1822:radeon_cp_indirect] idx=27 s=0 e=88 d=1
> [drm:pid1822:radeon_cp_dispatch_indirect] buf=27 s=0x0 e=0x58

Now, open count is 2 and something is calling close.

> [drm:pid1822:drm_close] open_count = 2
> [drm:pid1822:drm_close] pid = 1822, device = 0xc615fa00, open_count = 2
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x80086442, nr=0x42, dev 0xc615fa00, auth=1
> [drm:pid1822:radeon_cp_stop] 
> [drm:pid1822:radeon_do_cp_flush] 
> [drm:pid1822:radeon_do_cp_idle] 
> [drm:pid1822:radeon_do_cp_stop] 
> [drm:pid1822:radeon_do_engine_reset] 
> info: [drm] Num pipes: 1
> [drm:pid1822:radeon_do_cp_reset] 
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x800c6459, nr=0x59, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x80086414, nr=0x14, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_irq_uninstall] irq=16
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x80546440, nr=0x40, dev 0xc615fa00, auth=1
> [drm:pid1822:radeon_do_cleanup_cp] 
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x80086439, nr=0x39, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_sg_free] sg free virtual = 0xe8a64000
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x8004667e, nr=0x7e, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x8004667d, nr=0x7d, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0xc0086421, nr=0x21, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_rmctx] 2
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0xc0086421, nr=0x21, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_rmctx] 1
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0xc0086426, nr=0x26, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0xc0086426, nr=0x26, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_ioctl] pid=1822, cmd=0x8008642b, nr=0x2b, dev 0xc615fa00, auth=1
> [drm:pid1822:drm_unlock] 1 (pid 1822) requests unlock (0x80000001), flags = 0x00000000

Another close, followed by lastclose, so drm is fully shutdown.

> [drm:pid1822:drm_close] open_count = 1
> [drm:pid1822:drm_close] pid = 1822, device = 0xc615fa00, open_count = 1
> [drm:pid1822:drm_lastclose] 
> [drm:pid1822:radeon_do_cleanup_cp] 

Now, this looks like several vt switches...  We don't see the open
sequence here, so I assume that debugging was disabled at this point.

> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]
> info: [drm] Num pipes: 1
> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]
> info: [drm] Num pipes: 1
> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]
> info: [drm] Num pipes: 1
> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]
> info: [drm] Num pipes: 1
> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]
> info: [drm] Num pipes: 1
> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]
> info: [drm] Num pipes: 1
> info: [drm] Setting GART location based on new memory map
> info: [drm] Loading R500 Microcode
> info: [drm] Num pipes: 1
> info: [drm] writeback test succeeded in 1 usecs
> drm0: [ITHREAD]

and here debugging was re-enabled after the problem has occurred.

> [drm:pid6216:drm_ioctl]     returning 4
> [drm:pid6216:drm_ioctl] pid=6216, cmd=0x80046457, nr=0x57, dev 0xc615fa00, auth=1
> [drm:pid6216:drm_ioctl]     returning 4
> [drm:pid6216:drm_ioctl] pid=6216, cmd=0x80046457, nr=0x57, dev 0xc615fa00, auth=1
> [drm:pid6216:drm_ioctl]     returning 4
> [drm:pid6216:drm_ioctl] pid=6216, cmd=0x80046457, nr=0x57, dev 0xc615fa00, auth=1
> [drm:pid6216:drm_ioctl]     returning 4

robert.

> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
-- 
Robert Noland <rnoland at FreeBSD.org>
FreeBSD
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20090512/df5b8282/attachment.pgp


More information about the freebsd-stable mailing list