From 700399bc411dc92b933c19cc0c82ad9c258e2677 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 14 Jul 2002 20:24:40 +0000 Subject: [PATCH] o Lock page queue accesses by vm_page_wire(). --- sys/amd64/amd64/pmap.c | 4 ++++ sys/i386/i386/pmap.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 9b4d09d58ef..a52736bb3d5 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1071,9 +1071,11 @@ pmap_swapin_thread(td) m->valid = VM_PAGE_BITS_ALL; } ma[i] = m; + vm_page_lock_queues(); vm_page_wire(m); vm_page_wakeup(m); vm_page_flag_set(m, PG_MAPPED | PG_WRITEABLE); + vm_page_unlock_queues(); } pmap_qenter(ks, ma, KSTACK_PAGES); } @@ -1521,7 +1523,9 @@ pmap_growkernel(vm_offset_t addr) nkpt++; + vm_page_lock_queues(); vm_page_wire(nkpg); + vm_page_unlock_queues(); pmap_zero_page(nkpg); ptppaddr = VM_PAGE_TO_PHYS(nkpg); newpdir = (pd_entry_t) (ptppaddr | PG_V | PG_RW | PG_A | PG_M); diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 9b4d09d58ef..a52736bb3d5 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -1071,9 +1071,11 @@ pmap_swapin_thread(td) m->valid = VM_PAGE_BITS_ALL; } ma[i] = m; + vm_page_lock_queues(); vm_page_wire(m); vm_page_wakeup(m); vm_page_flag_set(m, PG_MAPPED | PG_WRITEABLE); + vm_page_unlock_queues(); } pmap_qenter(ks, ma, KSTACK_PAGES); } @@ -1521,7 +1523,9 @@ pmap_growkernel(vm_offset_t addr) nkpt++; + vm_page_lock_queues(); vm_page_wire(nkpg); + vm_page_unlock_queues(); pmap_zero_page(nkpg); ptppaddr = VM_PAGE_TO_PHYS(nkpg); newpdir = (pd_entry_t) (ptppaddr | PG_V | PG_RW | PG_A | PG_M);