Date: Thu, 16 Apr 2009 15:20:34 -0500 From: Robert Noland <rnoland@FreeBSD.org> To: John Baldwin <jhb@freebsd.org> Cc: deeptech71@gmail.com, freebsd-current@freebsd.org Subject: Re: diagnosing freezes (DRI?) Message-ID: <1239913234.1991.1.camel@balrog.2hip.net> In-Reply-To: <200904161116.58094.jhb@freebsd.org> References: <49E6ACEE.6080301@gmail.com> <200904161116.58094.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-rMvmULyedHvAfzNUtWRQ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Thu, 2009-04-16 at 11:16 -0400, John Baldwin wrote: > [ moved to current@ ] >=20 > On Wednesday 15 April 2009 11:58:38 pm deeptech71@gmail.com wrote: > > I can reliably (~40%) reproduce a freeze, which I think is related. > >=20 > > Using the GENERIC debug kernel built from SVN HEAD: > >=20 > > # cd /usr/obj/usr/src/sys/GENERIC/ > > # kgdb kernel.debug /var/crash/vmcore.0 > > GNU gdb 6.1.1 [FreeBSD] > > Copyright 2004 Free Software Foundation, Inc. > > GDB is free software, covered by the GNU General Public License, and yo= u are > > welcome to change it and/or distribute copies of it under certain=20 > > conditions. > > Type "show copying" to see the conditions.=20 > >=20 > > There is absolutely no warranty for GDB. Type "show warranty" for=20 > > details. > > This GDB was configured as "i386-marcel-freebsd"...=20 >=20 > [ snipped lots of stuff ] >=20 > > Kernel page fault with the following non-sleepable locks held:=20 > >=20 > > exclusive sleep mutex drmdev (drmdev) r =3D 0 (0xc373f860) locked @=20 > > /usr/src/sys/modules/drm/drm/../../../dev/drm/drm_drv.c:777=20 > >=20 > > KDB: stack backtrace:=20 > >=20 > > calltrap() at calltrap+0x6=20 > >=20 > > --- trap 0xc, eip =3D 0xc0b611b6, esp =3D 0xd67d4a98, ebp =3D 0xd67d4b4= 8 ---=20 > >=20 > > slow_copyin(c373f800,c4103300,c42e64e0,d67d4b64,0,...) at=20 > > slow_copyin+0x6 > > radeon_cp_texture(c373f800,c42e64e0,c4103300,309,c0c26218,...) at=20 > > radeon_cp_texture+0x199=20 > >=20 > > drm_ioctl(c39d4e00,c018644e,c42e64e0,3,c40afaf0,...) at drm_ioctl+0x356= =20 > >=20 >=20 > The drm code is doing a copyin() while holding a mutex (which is not allo= wed). Ok, the quick and dirty fix for this is http://people.freebsd.org/~rnoland/drm_radeon_state-copyin-fix.patch I think there may be other places of concern though and a more proper fix is needed. robert. --=20 Robert Noland <rnoland@FreeBSD.org> FreeBSD --=-rMvmULyedHvAfzNUtWRQ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (FreeBSD) iEYEABECAAYFAknnkxIACgkQM4TrQ4qfROMLawCeP2PeSvVBp9ZEYBxINY0Oxozc BoAAn15iz8xqwSFX+ww7k2A6+7p2GfcD =/Hii -----END PGP SIGNATURE----- --=-rMvmULyedHvAfzNUtWRQ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1239913234.1991.1.camel>