Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Feb 2010 14:23:05 +0100
From:      Martin Kristensen <mik@pc.dk>
To:        Robert Noland <rnoland@FreeBSD.org>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: freebsd7 (and 8), radeon, xorg-server -> deadlock or so
Message-ID:  <20100215142305.3f0d7e65@miknet.dk>
In-Reply-To: <1266096425.89452.30.camel@balrog.2hip.net>
References:  <6101e8c41002091524q25a7e026u585e575eb4f1589c@mail.gmail.com> <20100211074933.GJ9748@acme.spoerlein.net> <1266080709.89452.21.camel@balrog.2hip.net> <201002131137.34812.npapke@acm.org> <1266096425.89452.30.camel@balrog.2hip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 13 Feb 2010 15:27:04 -0600
Robert Noland <rnoland@FreeBSD.org> wrote:

> On Sat, 2010-02-13 at 11:37 -0800, Norbert Papke wrote:
> > On February 13, 2010, Robert Noland wrote:
> > > Ok, I've put up a patch at:
> > > 
> > > http://people.freebsd.org/~rnoland/drm-radeon-test.patch
> > >
> 
> http://people.freebsd.org/~rnoland/drm-radeon-8-test.patch
> 
> This one should work on 8...
> 
> robert.
> 
> > > This is sort of a mega patch and includes:
> > > 
> > > Re-worked drm mapping code, that ensures that we don't end up
> > > incorrectly mapping certain maps with overlapping offsets.  This
> > > generally shows up as the ring buffer not being cleared
> > > (contents != 0 in xorg.log) which leads to corruption and other
> > > bad behavior.
> > > 
> > > Re-written scatter gather allocation code.  This interacts
> > > directly with the VM system, rather than using bus_dma to allow
> > > us to grab non-contiguous pages for the scatter gather backing of
> > > the GART.  It also makes it easier to handle the caching mode of
> > > the backing pages.
> > > 
> > > Disable cache snooping on radeon cards, since we have write
> > > combining set properly now.
> > > 
> > > I have at least done a test build on -CURRENT with this patch,
> > > but I haven't had time to do much else without the rest of the
> > > code in my tree.  I've been running most all of this code for a
> > > month or two now at least, so it is mostly just a question of
> > > whether or not I got all of the conflicts sorted out properly
> > > when I made this patch.
> > > 
> > > The re-mapping code has the most widespread impact and has been
> > > tested on radeon r600 amd64, intel g45 i386 and mga amd64.
> > > 
> > > robert.

The patch applied cleanly. I have applied the patch to a clean 8-STABLE
environment with WITNESS, INVARIANTS and KDB_UNATTENDED in the kernel.
I still see the crashes when starting X with DRI on. This is what I see
in messages:

Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_mmap] called with offset 0000070001c7b000
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_mmap] called with offset 0000070001c7c000
Feb 14 19:13:44 alpha kernel: 
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_mmap] called with offset 0000070001c7d000
Feb 14 19:13:44 alpha kernel: 
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_mmap] called with offset 0000070001c7e000
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_mmap] called with offset 0000070001c7f000
Feb 14 19:13:44 alpha kernel: 
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_ioctl] pid=30467, cmd=0xc0286415, nr=0x15, dev 0xffffff0001a79400, auth=1
Feb 14 19:13:44 alpha kernel: 
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_addmap] offset = 0xfe8e0000, size = 0x00010000, type = 1
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_addmap] Found kernel map 1
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_addmap] Added map 1 0xfe8e0000/0x10000
Feb 14 19:13:44 alpha kernel: [drm:pid30467:drm_ioctl] pid=30467, cmd=0x80106459, nr=0x59, dev 0xffffff0001a79400, auth=1


There has been one odd development. If I startx with DRI off or NoAccel
set it starts as usual. If I then quit and to cli and restart, I see the
same crash as if I had DRI on.

Martin



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