On Thu, 2009-04-16 at 11:16 -0400, John Baldwin wrote: > [ moved to current_at_ ] > > On Wednesday 15 April 2009 11:58:38 pm deeptech71_at_gmail.com wrote: > > I can reliably (~40%) reproduce a freeze, which I think is related. > > > > Using the GENERIC debug kernel built from SVN HEAD: > > > > # 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 you are > > welcome to change it and/or distribute copies of it under certain > > conditions. > > Type "show copying" to see the conditions. > > > > There is absolutely no warranty for GDB. Type "show warranty" for > > details. > > This GDB was configured as "i386-marcel-freebsd"... > > [ snipped lots of stuff ] > > > Kernel page fault with the following non-sleepable locks held: > > > > exclusive sleep mutex drmdev (drmdev) r = 0 (0xc373f860) locked _at_ > > /usr/src/sys/modules/drm/drm/../../../dev/drm/drm_drv.c:777 > > > > KDB: stack backtrace: > > > > calltrap() at calltrap+0x6 > > > > --- trap 0xc, eip = 0xc0b611b6, esp = 0xd67d4a98, ebp = 0xd67d4b48 --- > > > > slow_copyin(c373f800,c4103300,c42e64e0,d67d4b64,0,...) at > > slow_copyin+0x6 > > radeon_cp_texture(c373f800,c42e64e0,c4103300,309,c0c26218,...) at > > radeon_cp_texture+0x199 > > > > drm_ioctl(c39d4e00,c018644e,c42e64e0,3,c40afaf0,...) at drm_ioctl+0x356 > > > > The drm code is doing a copyin() while holding a mutex (which is not allowed). 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. -- Robert Noland <rnoland_at_FreeBSD.org> FreeBSD
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:46 UTC