Eliminate (many) unnecessary calls to pmap_remove_all(). Pages from objects
with a reference count of zero can't possibly be mapped, so there is never a need for vm_page_set_invalid() to call pmap_remove_all() on them. Reviewed by: kib MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
bd28f7dce8
commit
899038e461
@ -3096,7 +3096,8 @@ vm_page_set_invalid(vm_page_t m, int base, int size)
|
||||
bits = VM_PAGE_BITS_ALL;
|
||||
else
|
||||
bits = vm_page_bits(base, size);
|
||||
if (m->valid == VM_PAGE_BITS_ALL && bits != 0)
|
||||
if (object->ref_count != 0 && m->valid == VM_PAGE_BITS_ALL &&
|
||||
bits != 0)
|
||||
pmap_remove_all(m);
|
||||
KASSERT((bits == 0 && m->valid == VM_PAGE_BITS_ALL) ||
|
||||
!pmap_page_is_mapped(m),
|
||||
|
Loading…
Reference in New Issue
Block a user