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