aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/amd64/efirt_machdep.c
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2018-02-12 22:53:00 +0000
committerJeff Roberson <jeff@FreeBSD.org>2018-02-12 22:53:00 +0000
commite958ad4cf3cc9e2624eba7634b972c18d5079a83 (patch)
treea8e1202a0bea71fdfbe01e46adc415772d0f708c /sys/amd64/amd64/efirt_machdep.c
parent487340b00406d7e8fc8e4963e130c3919102076b (diff)
downloadsrc-e958ad4cf3cc9e2624eba7634b972c18d5079a83.tar.gz
src-e958ad4cf3cc9e2624eba7634b972c18d5079a83.zip
Make v_wire_count a per-cpu counter(9) counter. This eliminates a
significant source of cache line contention from vm_page_alloc(). Use accessors and vm_page_unwire_noq() so that the mechanism can be easily changed in the future. Reviewed by: markj Discussed with: kib, glebius Tested by: pho (earlier version) Sponsored by: Netflix, Dell/EMC Isilon Differential Revision: https://reviews.freebsd.org/D14273
Notes
Notes: svn path=/head/; revision=329187
Diffstat (limited to 'sys/amd64/amd64/efirt_machdep.c')
-rw-r--r--sys/amd64/amd64/efirt_machdep.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/amd64/amd64/efirt_machdep.c b/sys/amd64/amd64/efirt_machdep.c
index 053804b54450..160ad489b5b9 100644
--- a/sys/amd64/amd64/efirt_machdep.c
+++ b/sys/amd64/amd64/efirt_machdep.c
@@ -74,8 +74,7 @@ efi_destroy_1t1_map(void)
VM_OBJECT_RLOCK(obj_1t1_pt);
TAILQ_FOREACH(m, &obj_1t1_pt->memq, listq)
m->wire_count = 0;
- atomic_subtract_int(&vm_cnt.v_wire_count,
- obj_1t1_pt->resident_page_count);
+ vm_wire_sub(obj_1t1_pt->resident_page_count);
VM_OBJECT_RUNLOCK(obj_1t1_pt);
vm_object_deallocate(obj_1t1_pt);
}