diagnosing freezes (DRI?)

Robert Noland rnoland at FreeBSD.org
Fri Apr 17 21:13:03 UTC 2009


On Fri, 2009-04-17 at 06:00 +0200, deeptech71 at gmail.com wrote:
> Robert Noland wrote:
> > On Thu, 2009-04-16 at 11:16 -0400, John Baldwin wrote:
> >> 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 @ 
> >>> /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.
> 
> I still get the same lockup :(

Ok, try this one... It should address all of the copyin/copyout paths in
radeon.  the r300_cmdbuf.c bits worry me a little, but I'm running this
way now....

http://people.freebsd.org/~rnoland/drm_radeon-copyin-fix-try2.patch

robert.

> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-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-current/attachments/20090417/bc8948ee/attachment.pgp


More information about the freebsd-current mailing list