From: Benjamin H. <be...@ke...> - 2006-10-05 23:40:30
|
On Thu, 2006-10-05 at 17:52 +0200, Thomas Hellstr=C3=B6m wrote: > Ben, >=20 > I've implemented a version of the drm_mm code that unmaps ptes using=20 > unmap_mapping_range, and remaps IO space using io_remap_pfn_range() for= =20 > a single page in nopage. This has the side effect that I need to double= =20 > check in nopage() after taking the object mutex that the pte in questio= n=20 > hasn't been populated by a racing nopage, which means I have to include= =20 > some page table walking code. I can see no obvious performance drops=20 > from populating one pte at a time. >=20 > This makes the need for an io-page aware nopage() or an=20 > io_remap_pfn_range() that doesn't BUG on populated page tables quite=20 > obvious. >=20 > What is the status of the NOPAGE_RETRY mechanism in 2.6.19? Patch just got in -mm, the return code changed to NOPAGE_REFAULT. It might still make it into 2.6.19. Regarding the change to io_remap_pfn_range(), I'm tempted to just provide a single routine to put in a single PTE that also does the double check of pte-present. I'll cook up something today hopefully as I want to experiment doing the exact same thing for SPE mappings on cell. Cheers, Ben. |