>
>Can't you just map an empty region of (accessible) address space and then do
>this bind (ie fault in) the physical pages as they are accessed?  

That's more or less what we do with the hacked version for userland mappings,
the DRM installs a vm nopage() handler that maps in pages as they are
accessed.

The problem is if the user uses the API to change the binding. To support that
we would have to walk VMAs & page tables of all processes that have AGP pages
bound and flush them out, which is very tricky and not the kind of VM games
I want to play.

The in-kernel mapping is another story. DRI drivers used ioremap of the AGP
aperture. The modified version uses a home-made ioremap_agp that mapped the
RAM pages instead. However, Chris Anha (ia64) implemented a different mecanism
on a suggestion from Jeff Hartmann that is to change agpgart to use vmalloc
segments on such chipsets and then populate the GART with the vmalloc'ed
pages, thus giving you the kernel mapping for free.

I am not done merging with Chris code yet, but I beleive once done, we should
consider including that in the main agpgart source base. This works for the
DRM use of AGP, but the ioctl is still a problem because of the ability it
has of binding/unbinding independently of mapping.

Ben.




_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to