From f79f3abcbfc92f79c4cd21c27db97295cb408024 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 1 Jan 2004 07:08:52 +0000 Subject: [PATCH] - Use pagezero() instead of bzero() in pmap_pinit(). (pagezero() is much faster.) MFi386: - Don't bother clearing PG_ZERO on the page table page in _pmap_allocpte(); it serves no purpose. - Don't bother clearing and setting PG_BUSY on page table directory pages. --- sys/amd64/amd64/pmap.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 7f113ee0496..30512e9668f 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1079,14 +1079,11 @@ pmap_pinit(pmap) while ((pml4pg = vm_page_alloc(NULL, color++, VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) VM_WAIT; - vm_page_lock_queues(); - vm_page_flag_clear(pml4pg, PG_BUSY); - vm_page_unlock_queues(); pmap->pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg)); if ((pml4pg->flags & PG_ZERO) == 0) - bzero(pmap->pm_pml4, PAGE_SIZE); + pagezero(pmap->pm_pml4); mtx_lock_spin(&allpmaps_lock); LIST_INSERT_HEAD(&allpmaps, pmap, pm_list); @@ -1254,7 +1251,6 @@ _pmap_allocpte(pmap, ptepindex) } vm_page_lock_queues(); - vm_page_flag_clear(m, PG_ZERO); vm_page_wakeup(m); vm_page_unlock_queues(); @@ -1424,7 +1420,6 @@ pmap_release(pmap_t pmap) m = PHYS_TO_VM_PAGE(pmap->pm_pml4[PML4PML4I]); m->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); - vm_page_busy(m); vm_page_free(m); vm_page_unlock_queues(); }