Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Aug 2008 11:19:34 -0400
From:      Robert Noland <rnoland@FreeBSD.org>
To:        "Paul B. Mahol" <onemda@gmail.com>
Cc:        freebsd-x11 <freebsd-x11@freebsd.org>, jimmiejaz@gmail.com
Subject:   Re: [CFT] drm updates
Message-ID:  <1219850374.61484.7.camel@squirrel.corp.cox.com>
In-Reply-To: <3a142e750808270307k237c5660ha98e8bcdfbddc4dc@mail.gmail.com>
References:  <48B1A590.2040701@gmail.com> <1219674352.53929.2.camel@squirrel.corp.cox.com> <3a142e750808250928n612761cch69a3bd2ebf374f92@mail.gmail.com> <3a142e750808260741p224bd68aw52711eab7e76aa59@mail.gmail.com> <3a142e750808260851u13de6cf9jf2640c195f9be81e@mail.gmail.com> <1219769914.58043.11.camel@squirrel.corp.cox.com> <3a142e750808270307k237c5660ha98e8bcdfbddc4dc@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-JOcPdfdIQhauhgcUo6w0
Content-Type: multipart/mixed; boundary="=-Hj9RPyWptGHVNvZCMVs5"


--=-Hj9RPyWptGHVNvZCMVs5
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Wed, 2008-08-27 at 12:07 +0200, Paul B. Mahol wrote:
> On 8/26/08, Robert Noland <rnoland@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.
>=20
> Issue bellow is fixed, previous problem still exist.
>=20
> 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.

>=20
> >> pid 7176 (Xorg), uid 0: exited on signal 6
> >> free_unr with the following non-sleepable locks held:
> >> exclusive sleep mutex drmdev (drmdev) r =3D 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,c0c317b=
0,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 =3D 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,c0c317b=
0,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 =3D 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,c0c317b=
0,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
> >>
> >

--=-Hj9RPyWptGHVNvZCMVs5
Content-Disposition: attachment; filename=drm-lock-blunder2.patch
Content-Transfer-Encoding: base64
Content-Type: text/x-patch; name=drm-lock-blunder2.patch; charset=us-ascii

SW5kZXg6IGRybV9kcnYuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGRybV9kcnYuYwkocmV2aXNpb24gMTgy
MDgwKQ0KKysrIGRybV9kcnYuYwkod29ya2luZyBjb3B5KQ0KQEAgLTQ2Myw3ICs0NjMsOSBAQA0K
IAkJZGV2LT5tYWdpY2xpc3RbaV0uaGVhZCA9IGRldi0+bWFnaWNsaXN0W2ldLnRhaWwgPSBOVUxM
Ow0KIAl9DQogDQorCURSTV9VTkxPQ0soKTsNCiAJZHJtX2RyYXdhYmxlX2ZyZWVfYWxsKGRldik7
DQorCURSTV9MT0NLKCk7DQogDQogCQkJCS8qIENsZWFyIEFHUCBpbmZvcm1hdGlvbiAqLw0KIAlp
ZiAoIGRldi0+YWdwICkgew0KQEAgLTY1OCw4ICs2NjAsMTEgQEANCiAJCWRldi0+YWdwID0gTlVM
TDsNCiAJfQ0KIA0KLQlpZiAoZGV2LT5kcml2ZXIudW5sb2FkICE9IE5VTEwpDQorCWlmIChkZXYt
PmRyaXZlci51bmxvYWQgIT0gTlVMTCkgew0KKwkJRFJNX0xPQ0soKTsNCiAJCWRldi0+ZHJpdmVy
LnVubG9hZChkZXYpOw0KKwkJRFJNX1VOTE9DSygpOw0KKwl9DQogDQogCWRlbGV0ZV91bnJoZHIo
ZGV2LT5kcndfdW5yaGRyKTsNCiANCg==


--=-Hj9RPyWptGHVNvZCMVs5--

--=-JOcPdfdIQhauhgcUo6w0
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)

iEYEABECAAYFAki1cIYACgkQM4TrQ4qfROMmxQCcCUwSIXqxTWf2x3VdSCOvVzo7
6JwAn13xwLv9VR5bfxAI/OqxSCyE6TFJ
=buzT
-----END PGP SIGNATURE-----

--=-JOcPdfdIQhauhgcUo6w0--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1219850374.61484.7.camel>