PCI Radeon 9250 - DRI/DRM in 8.0-RELEASE

Steve Polyack korvus at comcast.net
Mon Dec 14 14:12:24 UTC 2009


Robert Noland wrote:
> On Thu, 2009-12-10 at 14:19 -0600, Robert Noland wrote:
>   
>> On Thu, 2009-12-10 at 15:03 -0500, Steve Polyack wrote:
>>     
>>> 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
>>>       
>> Ok, it doesn't seem to be related to bounce pages... But it was worth a
>> shot...
>>
>>     
>
> Could you try the attached patch and see if it makes any difference?
>
> My assembly foo is weak on i386.
>
> Jhb,
>
> Does this look at all correct?
>
> robert.
>
>   
I tried the pagezero.patch, but it did not seem to change anything.  The 
corruption looks the same.  Here's the section regarding the ring from 
Xorg.log:

(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
(II) RADEON(0): [pci] 8192 kB allocated with handle 0xe96f2000
(II) RADEON(0): [pci] ring handle = 0xe96f2000
(II) RADEON(0): [pci] Ring mapped at 0x28a7d000
(II) RADEON(0): [pci] Ring contents 0xf0f09506
(II) RADEON(0): [pci] ring read ptr handle = 0xe97f3000
(II) RADEON(0): [pci] Ring read ptr mapped at 0x286ff000
(II) RADEON(0): [pci] Ring read ptr contents 0xffffffff
(II) RADEON(0): [pci] vertex/indirect buffers handle = 0xe97f4000
(II) RADEON(0): [pci] Vertex/indirect buffers mapped at 0x30c00000
(II) RADEON(0): [pci] Vertex/indirect buffers contents 0x004dffd3
(II) RADEON(0): [pci] GART texture map handle = 0xe99f4000
(II) RADEON(0): [pci] GART Texture map mapped at 0x30e00000
(II) RADEON(0): [drm] register handle = 0xfe5d0000
(II) RADEON(0): [dri] Visual configs initialized
(II) RADEON(0): RADEONRestoreMemMapRegisters() :
(II) RADEON(0):   MC_FB_LOCATION   : 0xefffe000 0x1fff0000
(II) RADEON(0):   MC_AGP_LOCATION  : 0xffffffc0




More information about the freebsd-x11 mailing list