diff options
author | ups <ups@FreeBSD.org> | 2006-06-15 01:01:06 +0000 |
---|---|---|
committer | ups <ups@FreeBSD.org> | 2006-06-15 01:01:06 +0000 |
commit | b3a7439a45bf95ef2c21dfad6ba1a051467efad1 (patch) | |
tree | ef8795aacb2aaea54cc725dafc9bd2ea5f8fdba3 /sys/vm/vm_fault.c | |
parent | 63bddd18cc9d5d6e46d95bda0c636f912901812d (diff) | |
download | FreeBSD-src-b3a7439a45bf95ef2c21dfad6ba1a051467efad1.zip FreeBSD-src-b3a7439a45bf95ef2c21dfad6ba1a051467efad1.tar.gz |
Remove mpte optimization from pmap_enter_quick().
There is a race with the current locking scheme and removing
it should have no measurable performance impact.
This fixes page faults leading to panics in pmap_enter_quick_locked()
on amd64/i386.
Reviewed by: alc,jhb,peter,ps
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r-- | sys/vm/vm_fault.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 2484af1..9387575 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -953,7 +953,7 @@ vm_fault_prefault(pmap_t pmap, vm_offset_t addra, vm_map_entry_t entry) int i; vm_offset_t addr, starta; vm_pindex_t pindex; - vm_page_t m, mpte; + vm_page_t m; vm_object_t object; if (pmap != vmspace_pmap(curthread->td_proc->p_vmspace)) @@ -968,7 +968,6 @@ vm_fault_prefault(pmap_t pmap, vm_offset_t addra, vm_map_entry_t entry) starta = 0; } - mpte = NULL; for (i = 0; i < PAGEORDER_SIZE; i++) { vm_object_t backing_object, lobject; @@ -1009,8 +1008,7 @@ vm_fault_prefault(pmap_t pmap, vm_offset_t addra, vm_map_entry_t entry) vm_page_lock_queues(); if (VM_PAGE_INQUEUE1(m, PQ_CACHE)) vm_page_deactivate(m); - mpte = pmap_enter_quick(pmap, addr, m, - entry->protection, mpte); + pmap_enter_quick(pmap, addr, m, entry->protection); vm_page_unlock_queues(); } VM_OBJECT_UNLOCK(lobject); |