PCI Radeon 9250 - DRI/DRM in 8.0-RELEASE

Steve Polyack korvus at comcast.net
Thu Dec 10 20:03:24 UTC 2009

Robert Noland wrote:
> On Thu, 2009-12-10 at 13:27 -0500, Steve Polyack wrote:
>> (II) RADEON(0): [pci] 8192 kB allocated with handle 0xe9b02000
>> (II) RADEON(0): [pci] ring handle = 0xe9b02000
>> (II) RADEON(0): [pci] Ring mapped at 0x28a7d000
>> (II) RADEON(0): [pci] Ring contents 0x00eeeeec
>> (II) RADEON(0): [pci] ring read ptr handle = 0xe9c03000
>> (II) RADEON(0): [pci] Ring read ptr mapped at 0x286ff000
>> (II) RADEON(0): [pci] Ring read ptr contents 0x00ffffff
>> (II) RADEON(0): [pci] vertex/indirect buffers handle = 0xe9c04000
>> (II) RADEON(0): [pci] Vertex/indirect buffers mapped at 0x30c00000
>> (II) RADEON(0): [pci] Vertex/indirect buffers contents 0x00ffffff
>> (II) RADEON(0): [pci] GART texture map handle = 0xe9e04000
>> (II) RADEON(0): [pci] GART Texture map mapped at 0x30e00000
>> (II) RADEON(0): [drm] register handle = 0xfe5d0000
> The corruption is due to the ring not being zeroed as it should be.
> This seems to only occur on i386 builds and even then, only sometimes.
> I'm trying to look into this issue again and I've previously eliminated
> everything except libdrm and the kernel from this issue by testing with
> a small sample program that directly interacts with drm without X
> running.  All of the pointers seem to be correct and valid, but the
> contents during startup should always be 0.
> Can you do a "sysctl hw.busdma" while X is up with drm enabled?
Here's the sysctl output:
hw.busdma.total_bpages: 288
hw.busdma.zone0.total_bpages: 288
hw.busdma.zone0.free_bpages: 288
hw.busdma.zone0.reserved_bpages: 0
hw.busdma.zone0.active_bpages: 0
hw.busdma.zone0.total_bounced: 0
hw.busdma.zone0.total_deferred: 0
hw.busdma.zone0.lowaddr: 0xffffffff
hw.busdma.zone0.alignment: 4096

It doesn't seem to change whether I'm in X with DRM disabled or enabled 
with the display corruption.  Also, it took me a few starts of X to get 
it to even happen, as it seems there is occasionally a pci Out of memory 
(-12) error causing DRM to be disabled as well:

drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenByBusid: Searching for BusID pci:0000:04:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 10, (OK)
drmOpenByBusid: drmOpenMinor returns 10
drmOpenByBusid: drmGetBusid reports pci:0000:04:00.0
(II) [drm] DRM interface version 1.2
(II) [drm] DRM open master succeeded.
(II) RADEON(0): [drm] Using the DRM lock SAREA also for drawables.
(II) RADEON(0): [drm] framebuffer handle = 0xe8000000
(II) RADEON(0): [drm] added 1 reserved context for kernel
(II) RADEON(0): X context handle = 0x1
(II) RADEON(0): [drm] installed DRM signal handler
(EE) RADEON(0): [pci] Out of memory (-12)
(EE) RADEON(0): [pci] PCI failed to initialize. Disabling the DRI.
(II) RADEON(0): [drm] removed 1 reserved context for kernel
(II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xd06f8000 at 0x286fd000
(II) RADEON(0): [drm] Closed DRM master.
(II) RADEON(0): RADEONRestoreMemMapRegisters() :
(II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000 0x1fff0000
(II) RADEON(0):   MC_AGP_LOCATION  : 0xffffffc0
(==) RADEON(0): Backing store disabled
(WW) RADEON(0): Direct rendering disabled
(II) RADEON(0): Render acceleration enabled for R200 type cards.
(II) RADEON(0): Setting EXA maxPitchBytes

Thanks for taking a look at this again.

More information about the freebsd-x11 mailing list