dri + ATI: dramatic performance slowdown

Robert Noland rnoland at FreeBSD.org
Thu Apr 23 00:55:35 UTC 2009

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.  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


Robert Noland <rnoland at FreeBSD.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20090423/8233cffa/attachment.pgp

More information about the freebsd-stable mailing list