Date: Tue, 14 Apr 2009 17:28:34 +0200 From: Tijl Coosemans <tijl@ulyssis.org> To: freebsd-hackers@freebsd.org, Robert Noland <rnoland@freebsd.org> Cc: xorquewasp@googlemail.com Subject: Re: diagnosing freezes (DRI?) Message-ID: <200904141728.36178.tijl@ulyssis.org> In-Reply-To: <1239388293.1922.80.camel@balrog.2hip.net> References: <20090410132354.GA20721@logik.internal.network> <20090410175922.GA50520@logik.internal.network> <1239388293.1922.80.camel@balrog.2hip.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--Boundary-00=_kuK5JYWDptkZsu3 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Friday 10 April 2009 20:31:33 Robert Noland wrote: > On Fri, 2009-04-10 at 18:59 +0100, xorquewasp@googlemail.com wrote: >> The system doesn't seem to have frozen since DRI/DRM was disabled. >> >> I did have one crash/reboot whilst building a large number of >> packages with tinderbox. I've currently got both tinderbox and a >> make -j 16 buildworld going on a loop in the hope that I can trigger >> it again. >> >> Being the idiot I am, I had encrypted swap enabled and so savecore >> didn't save anything. Won't make that mistake twice. >> >> I'm currently using a world compiled WITH_DEBUG but is there >> anything else I can do? > > If it is locking the whole system, then a core is really our best > shot. If you can extract anything useful from xorg.log or setting > hw.dri.0.debug that also might be of use. > > I'm running on 2 cores, but it is possible that some locking issue > exists. All of the driver specific ioctls are run under a lock > though. I have the same problem with a Radeon Mobility 9700 (r300) on 7-STABLE. The entire system freezes, but it happens very rarely. I took a quick look at the drm code for locking issues and found one thing that seems suspicious. Patch attached. I'm not familiar with the code, so I don't know if it's correct or even related this problem. --Boundary-00=_kuK5JYWDptkZsu3 Content-Type: text/plain; charset="iso-8859-15"; name="patch-drm" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch-drm" --- sys/dev/drm/drm_bufs.c.orig 2009-04-11 15:10:56.000000000 +0200 +++ sys/dev/drm/drm_bufs.c 2009-04-11 15:11:33.000000000 +0200 @@ -173,7 +173,6 @@ /* Prevent a 2nd X Server from creating a 2nd lock */ DRM_LOCK(); if (dev->lock.hw_lock != NULL) { - DRM_UNLOCK(); free(map->handle, DRM_MEM_MAPS); free(map, DRM_MEM_MAPS); return EBUSY; --Boundary-00=_kuK5JYWDptkZsu3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904141728.36178.tijl>