On Dec 28, 2013, at 4:02 PM, Nathan Whitehorn <nwhiteh...@freebsd.org> wrote:
> On 12/26/13 00:46, Marcel Moolenaar wrote: >> Author: marcel >> Date: Thu Dec 26 05:46:10 2013 >> New Revision: 259908 >> URL: http://svnweb.freebsd.org/changeset/base/259908 >> >> Log: >> For ia64, use pmap_remove_pages() and not pmap_remove(). The problem is >> that we don't have a good way (yet) to iterate over the mapped pages by >> virtual address and simply try each page within the range. Given that we >> call pmap_remove() over the entire 2^63 bytes of address space, it takes >> a while for pmap_remove to have tried all 2^50 pages. >> By using pmap_remove_pages() we use the PV list to find all mappings. >> >> Change derived from a patch by: alc >> > > Why make this ia64-specific? It seems like a potentially useful general > optimization and certainly shouldn't be harmful on other architectures. What alc@ said. Making it generic requires a bit more work and it's not clear to me whether it's a good change. Basically, ia64 fails to handle the pmap_remove() interface. So, for now I see it as a quick fix. What happens next is open. We're thinking of using the new trie code to track PTEs per PMAP. This helps to support pmap_remove() efficiently and may have other advantages. -- Marcel Moolenaar mar...@xcllnt.net
signature.asc
Description: Message signed with OpenPGP using GPGMail