Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Apr 2009 19:38:11 -0700
From:      Norbert Papke <npapke@acm.org>
To:        freebsd-stable@freebsd.org
Cc:        Robert Noland <rnoland@freebsd.org>
Subject:   Re: dri + ATI: dramatic performance slowdown
Message-ID:  <200904221938.12129.npapke@acm.org>
In-Reply-To: <1240448113.2142.11.camel@balrog.2hip.net>
References:  <20090420152620.8f89edd5.lehmann@ans-netz.de> <200904221739.25097.npapke@acm.org> <1240448113.2142.11.camel@balrog.2hip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On April 22, 2009, Robert Noland wrote:
> On Wed, 2009-04-22 at 17:39 -0700, Norbert Papke wrote:
> > 0x0/0x100000000 BIOS write-back set-by-firmware active
> > 0x100000000/0x40000000 BIOS write-back set-by-firmware active
> > 0xc0000000/0x40000000 BIOS uncacheable set-by-firmware active
>
> MTRR is failing in many cases... It seems that your BIOS is doing what
> both of my newer machines are doing and setting a global range to
> write-back.  I'm also guessing that 0xc0000000 is your framebuffer. 

Correct.  The framebuffer starts at 0xd0000000, still covered by that last 
range.

> We 
> aren't allowed to overlap either of these ranges with a write combined
> region according to the specs.  We would have to handle
> splitting/merging regions which we don't currently do.  I looked at this
> just the other day, but it is reasonably complex to make that work right
> and accommodate all of the merging/splitting of regions.
>
> We are allowed to use PAT on either of these types of regions to enable
> write-combining.  The drm code already does this for some allocations
> that are not mapped to user space.  The problem with PAT is that all
> mappings of a given region need to have the same type and we don't
> currently have any way to specify that for user space mappings.  This is
> fwiw, the last of Nvidia's feature requests as well.  I've started
> looking at it, but I have a lot of learning to do on the vm system
> still.

Thanks for taking the time to explain.  Your posts are always very 
informative.  I am learning quite a lot about the complexities involved.

There is yet another thing I don't understand.  With other graphics cards, 
including my G45 internal graphics adaptor, the /dev/agpgart device is 
created.  I don't see this device with the Radeon card.  Is this expected 
because it is not needed for PCIe?

Cheers,

-- Norbert Papke.
   npapke@acm.org



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