[CFT] drm updates

Paul B. Mahol onemda at gmail.com
Thu Aug 28 18:45:09 UTC 2008


On 8/28/08, Robert Noland <rnoland at freebsd.org> wrote:
> On Thu, 2008-08-28 at 19:07 +0200, Paul B. Mahol wrote:
>> On 8/27/08, Robert Noland <rnoland at freebsd.org> wrote:
>> > On Wed, 2008-08-27 at 12:07 +0200, Paul B. Mahol wrote:
>> >> On 8/26/08, Robert Noland <rnoland at freebsd.org> wrote:
>> >> > On Tue, 2008-08-26 at 17:51 +0200, Paul B. Mahol wrote:
>> >> >> Here is more kernel debug info (after updating libdrm and testing
>> >> >> with
>> >> >> glxgears)
>> >> >
>> >> > I don't think that the two issues are related, but try this patch...
>> >> > It
>> >> > should at least, resolve the issue below.
>> >> >
>> >> > robert.
>> >>
>> >> Issue bellow is fixed, previous problem still exist.
>> >>
>> >> textdump of panic when unloading drm attached.
>> >
>> > Ok, The locking semantics are a nightmare... Give this a try, it should
>> > correct both the previous issue as well as this one.
>> >
>> > robert.
>> >
>> 
>> Panic fixed, now only Xorg crashing when using glxgears (,...) remains ;)
>
> Ok, what hardware are you using again?  Can you manually load drm
> modules and set hw.dri.0.debug=1 and send me the debug output?
>
> robert.

Hardware: "Mobile 945GM/GU Express Integrated Graphics Controller"
Debug ouptut attached.

I have two ktrace.out of Xorg and glxgears but I dont see point sending it.

>
>> >>
>> >> >> pid 7176 (Xorg), uid 0: exited on signal 6
>> >> >> free_unr with the following non-sleepable locks held:
>> >> >> exclusive sleep mutex drmdev (drmdev) r = 0 (0xc4783cec) locked @
>> >> >> /usr/local/src/sys/modules/drm/drm/../../../dev/drm/drm_irq.c:256
>> >> >> KDB: stack backtrace:
>> >> >> db_trace_self_wrapper(c0b570bb,c43887cc,c07f0dd5,c4d79b8f,100,...)
>> >> >> at
>> >> >> db_trace_self_wrapper+0x26
>> >> >> kdb_backtrace(c4d79b8f,100,ffffffff,c0dcf79c,c4388800,...) at
>> >> >> kdb_backtrace+0x29
>> >> >> _witness_debugger(c0b5930a,c4388814,4,1,0,...) at _witness_debugger
>> >> >> +0x25
>> >> >> witness_warn(5,0,c0b58e81,c4388838,c07a528c,...) at
>> >> >> witness_warn+0x1c1
>> >> >> free_unr(c49776c0,1,c4d79696,a8,c4783ef4,...) at free_unr+0x2b
>> >> >> drm_drawable_free_all(c4783c00,c4d7bce0,c4d796d9,1ba,0,...) at
>> >> >> drm_drawable_free_all+0x174
>> >> >> drm_lastclose(c4646c80,1,c4d796d9,2e3,8,...) at drm_lastclose+0xdf
>> >> >> drm_close(c4b37000,3,2000,c4971230,c4388900,...) at drm_close+0x2ca
>> >> >> giant_close(c4b37000,3,2000,c4971230,c4971230,...) at
>> >> >> giant_close+0x67
>> >> >> devfs_close(c4388948,3,c4d4d430,3,c4388968,...) at devfs_close+0x29a
>> >> >> VOP_CLOSE_APV(c0c26380,c4388948,c0b61a19,124,c0c63f80,...) at
>> >> >> VOP_CLOSE_APV+0xa5
>> >> >> vn_close(c4d4d430,3,c4ad9700,c4971230,0,...) at vn_close+0xe4
>> >> >> vn_closefile(c49df1c0,c4971230,c43889ec,c0784853,c49df1c0,...) at
>> >> >> vn_closefile+0xe9
>> >> >> devfs_close_f(c49df1c0,c4971230,0,0,c49df1c0,...) at devfs_close_f
>> >> >> +0x25
>> >> >> _fdrop(c49df1c0,c4971230,c4388a20,c07f0c1c,0,c49712d4,c0dcf798,c0c317b0,c0b4f841,c51c452c,6a7,c0b4f841,c4388a48,c07b9fe0,c51c452c,8,c0b4f841,6a7)
>> >> >> at _fdrop+0x43
>> >> >> closef(c49df1c0,c4971230,6a7,6a5,c4470340,...) at closef+0x290
>> >> >> fdfree(c4971230,0,c0b5014d,102,c49712d4,...) at fdfree+0x387
>> >> >> exit1(c4971230,1,c0b53f0a,aad,c0b4ed7f,...) at exit1+0x543
>> >> >> sigexit(c4971230,1,c0b53f0a,a3d,c556baa8,...) at sigexit+0xaaf
>> >> >> postsig(1,0,c0b587c6,df,c496d7d4,...) at postsig+0x1dd
>> >> >> ast(c4388d38) at ast+0x37f
>> >> >> doreti_ast() at doreti_ast+0x17
>> >> >> uma_zalloc_arg: zone "16" with the following non-sleepable locks
>> >> >> held:
>> >> >> exclusive sleep mutex drmdev (drmdev) r = 0 (0xc4783cec) locked @
>> >> >> /usr/local/src/sys/modules/drm/drm/../../../dev/drm/drm_irq.c:256
>> >> >> KDB: stack backtrace:
>> >> >> db_trace_self_wrapper(c0b570bb,c438874c,c07f0dd5,c4d79b8f,100,...)
>> >> >> at
>> >> >> db_trace_self_wrapper+0x26
>> >> >> kdb_backtrace(c4d79b8f,100,ffffffff,c0dcf79c,c4388780,...) at
>> >> >> kdb_backtrace+0x29
>> >> >> _witness_debugger(c0b5930a,c4388794,4,1,0,...) at _witness_debugger
>> >> >> +0x25
>> >> >> witness_warn(5,0,c0b78fa6,c0b2b3ab,c0b5930a,...) at
>> >> >> witness_warn+0x1c1
>> >> >> uma_zalloc_arg(c1872960,0,102,2,1,...) at uma_zalloc_arg+0x34
>> >> >> malloc(10,c0c34a40,102,c4388838,c07a528c,...) at malloc+0xd2
>> >> >> free_unr(c49776c0,1,c4d79696,a8,c4783ef4,...) at free_unr+0x47
>> >> >> drm_drawable_free_all(c4783c00,c4d7bce0,c4d796d9,1ba,0,...) at
>> >> >> drm_drawable_free_all+0x174
>> >> >> drm_lastclose(c4646c80,1,c4d796d9,2e3,8,...) at drm_lastclose+0xdf
>> >> >> drm_close(c4b37000,3,2000,c4971230,c4388900,...) at drm_close+0x2ca
>> >> >> giant_close(c4b37000,3,2000,c4971230,c4971230,...) at
>> >> >> giant_close+0x67
>> >> >> devfs_close(c4388948,3,c4d4d430,3,c4388968,...) at devfs_close+0x29a
>> >> >> VOP_CLOSE_APV(c0c26380,c4388948,c0b61a19,124,c0c63f80,...) at
>> >> >> VOP_CLOSE_APV+0xa5
>> >> >> vn_close(c4d4d430,3,c4ad9700,c4971230,0,...) at vn_close+0xe4
>> >> >> vn_closefile(c49df1c0,c4971230,c43889ec,c0784853,c49df1c0,...) at
>> >> >> vn_closefile+0xe9
>> >> >> devfs_close_f(c49df1c0,c4971230,0,0,c49df1c0,...) at devfs_close_f
>> >> >> +0x25
>> >> >> _fdrop(c49df1c0,c4971230,c4388a20,c07f0c1c,0,c49712d4,c0dcf798,c0c317b0,c0b4f841,c51c452c,6a7,c0b4f841,c4388a48,c07b9fe0,c51c452c,8,c0b4f841,6a7)
>> >> >> at _fdrop+0x43
>> >> >> closef(c49df1c0,c4971230,6a7,6a5,c4470340,...) at closef+0x290
>> >> >> fdfree(c4971230,0,c0b5014d,102,c49712d4,...) at fdfree+0x387
>> >> >> exit1(c4971230,1,c0b53f0a,aad,c0b4ed7f,...) at exit1+0x543
>> >> >> sigexit(c4971230,1,c0b53f0a,a3d,c556baa8,...) at sigexit+0xaaf
>> >> >> postsig(1,0,c0b587c6,df,c496d7d4,...) at postsig+0x1dd
>> >> >> ast(c4388d38) at ast+0x37f
>> >> >> doreti_ast() at doreti_ast+0x17
>> >> >> uma_zalloc_arg: zone "16" with the following non-sleepable locks
>> >> >> held:
>> >> >> exclusive sleep mutex drmdev (drmdev) r = 0 (0xc4783cec) locked @
>> >> >> /usr/local/src/sys/modules/drm/drm/../../../dev/drm/drm_irq.c:256
>> >> >> KDB: stack backtrace:
>> >> >> db_trace_self_wrapper(c0b570bb,c438874c,c07f0dd5,c4d79b8f,100,...)
>> >> >> at
>> >> >> db_trace_self_wrapper+0x26
>> >> >> kdb_backtrace(c4d79b8f,100,ffffffff,c0dcf79c,c4388780,...) at
>> >> >> kdb_backtrace+0x29
>> >> >> _witness_debugger(c0b5930a,c4388794,4,1,0,...) at _witness_debugger
>> >> >> +0x25
>> >> >> witness_warn(5,0,c0b78fa6,c0b2b3ab,c0b5930a,...) at
>> >> >> witness_warn+0x1c1
>> >> >> uma_zalloc_arg(c1872960,0,102,2,1,...) at uma_zalloc_arg+0x34
>> >> >> malloc(10,c0c34a40,102,c4388838,c07a528c,...) at malloc+0xd2
>> >> >> free_unr(c49776c0,1,c4d79696,a8,c4783ef4,...) at free_unr+0x66
>> >> >> drm_drawable_free_all(c4783c00,c4d7bce0,c4d796d9,1ba,0,...) at
>> >> >> drm_drawable_free_all+0x174
>> >> >> drm_lastclose(c4646c80,1,c4d796d9,2e3,8,...) at drm_lastclose+0xdf
>> >> >> drm_close(c4b37000,3,2000,c4971230,c4388900,...) at drm_close+0x2ca
>> >> >> giant_close(c4b37000,3,2000,c4971230,c4971230,...) at
>> >> >> giant_close+0x67
>> >> >> devfs_close(c4388948,3,c4d4d430,3,c4388968,...) at devfs_close+0x29a
>> >> >> VOP_CLOSE_APV(c0c26380,c4388948,c0b61a19,124,c0c63f80,...) at
>> >> >> VOP_CLOSE_APV+0xa5
>> >> >> vn_close(c4d4d430,3,c4ad9700,c4971230,0,...) at vn_close+0xe4
>> >> >> vn_closefile(c49df1c0,c4971230,c43889ec,c0784853,c49df1c0,...) at
>> >> >> vn_closefile+0xe9
>> >> >> devfs_close_f(c49df1c0,c4971230,0,0,c49df1c0,...) at devfs_close_f
>> >> >> +0x25
>> >> >> _fdrop(c49df1c0,c4971230,c4388a20,c07f0c1c,0,c49712d4,c0dcf798,c0c317b0,c0b4f841,c51c452c,6a7,c0b4f841,c4388a48,c07b9fe0,c51c452c,8,c0b4f841,6a7)
>> >> >> at _fdrop+0x43
>> >> >> closef(c49df1c0,c4971230,6a7,6a5,c4470340,...) at closef+0x290
>> >> >> fdfree(c4971230,0,c0b5014d,102,c49712d4,...) at fdfree+0x387
>> >> >> exit1(c4971230,1,c0b53f0a,aad,c0b4ed7f,...) at exit1+0x543
>> >> >> sigexit(c4971230,1,c0b53f0a,a3d,c556baa8,...) at sigexit+0xaaf
>> >> >> postsig(1,0,c0b587c6,df,c496d7d4,...) at postsig+0x1dd
>> >> >> ast(c4388d38) at ast+0x37f
>> >> >> doreti_ast() at doreti_ast+0x17
>> >> >> drm0: [ITHREAD]
>> >> >> pid 9156 (Xorg), uid 0: exited on signal 6
>> >> >>
>> >> >
>> >
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: drm.debug
Type: application/octet-stream
Size: 23222 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-x11/attachments/20080828/897f34b7/drm.obj


More information about the freebsd-x11 mailing list