Do not preset PG_BUSY on VM_ALLOC_NOOBJ pages. Such pages are not

accessible through an object.  Thus, PG_BUSY serves no purpose.
This commit is contained in:
Alan Cox 2004-06-17 06:16:58 +00:00
parent a6d8900933
commit d45f21f31a
3 changed files with 2 additions and 8 deletions

View File

@ -1227,10 +1227,6 @@ _pmap_allocpte(pmap, ptepindex)
*pd = VM_PAGE_TO_PHYS(m) | PG_U | PG_RW | PG_V | PG_A | PG_M;
}
vm_page_lock_queues();
vm_page_wakeup(m);
vm_page_unlock_queues();
return m;
}

View File

@ -1196,10 +1196,6 @@ _pmap_allocpte(pmap, ptepindex)
pmap->pm_pdir[ptepindex] =
(pd_entry_t) (ptepa | PG_U | PG_RW | PG_V | PG_A | PG_M);
vm_page_lock_queues();
vm_page_wakeup(m);
vm_page_unlock_queues();
return m;
}

View File

@ -844,6 +844,8 @@ vm_page_alloc(vm_object_t object, vm_pindex_t pindex, int req)
if (req & VM_ALLOC_ZERO)
flags = PG_ZERO | PG_BUSY;
}
if (req & VM_ALLOC_NOOBJ)
flags &= ~PG_BUSY;
m->flags = flags;
if (req & VM_ALLOC_WIRED) {
atomic_add_int(&cnt.v_wire_count, 1);