diff options
author | alc <alc@FreeBSD.org> | 2004-06-17 06:16:58 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-06-17 06:16:58 +0000 |
commit | 4c2e464ea2a4a1c5d41aff23221551d76f839a6d (patch) | |
tree | a44b368c5c8499289c09437806188fd8fecd1a0d | |
parent | 74169a273f2f2e37224bc4be29a6aba5fb792277 (diff) | |
download | FreeBSD-src-4c2e464ea2a4a1c5d41aff23221551d76f839a6d.zip FreeBSD-src-4c2e464ea2a4a1c5d41aff23221551d76f839a6d.tar.gz |
Do not preset PG_BUSY on VM_ALLOC_NOOBJ pages. Such pages are not
accessible through an object. Thus, PG_BUSY serves no purpose.
-rw-r--r-- | sys/amd64/amd64/pmap.c | 4 | ||||
-rw-r--r-- | sys/i386/i386/pmap.c | 4 | ||||
-rw-r--r-- | sys/vm/vm_page.c | 2 |
3 files changed, 2 insertions, 8 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index e87c239..9e374c7 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -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; } diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 69aba2e..f347cee 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -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; } diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index a45259e..8c74f6e 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -844,6 +844,8 @@ loop: 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); |