eeacb3b02f
The hold_count and wire_count fields of struct vm_page are separate reference counters with similar semantics. The remaining essential differences are that holds are not counted as a reference with respect to LRU, and holds have an implicit free-on-last unhold semantic whereas vm_page_unwire() callers must explicitly determine whether to free the page once the last reference to the page is released. This change removes the KPIs which directly manipulate hold_count. Functions such as vm_fault_quick_hold_pages() now return wired pages instead. Since r328977 the overhead of maintaining LRU for wired pages is lower, and in many cases vm_fault_quick_hold_pages() callers would swap holds for wirings on the returned pages anyway, so with this change we remove a number of page lock acquisitions. No functional change is intended. __FreeBSD_version is bumped. Reviewed by: alc, kib Discussed with: jeff Discussed with: jhb, np (cxgbe) Tested by: pho (previous version) Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D19247 |
||
---|---|---|
.. | ||
autoconf.c | ||
bcopy.S | ||
bus_space_generic.c | ||
busdma_machdep.c | ||
cache_mipsNN.c | ||
cache.c | ||
cpu.c | ||
db_disasm.c | ||
db_interface.c | ||
db_trace.c | ||
dump_machdep.c | ||
elf_machdep.c | ||
elf_trampoline.c | ||
exception.S | ||
fp.S | ||
freebsd32_machdep.c | ||
gdb_machdep.c | ||
genassym.c | ||
in_cksum.c | ||
inckern.S | ||
intr_machdep.c | ||
libkern_machdep.c | ||
locore.S | ||
machdep.c | ||
mem.c | ||
minidump_machdep.c | ||
mips_pic.c | ||
mp_machdep.c | ||
mpboot.S | ||
nexus.c | ||
octeon_cop2_swtch.S | ||
octeon_cop2.c | ||
ofw_machdep.c | ||
pm_machdep.c | ||
pmap.c | ||
ptrace_machdep.c | ||
sc_machdep.c | ||
stack_machdep.c | ||
stdatomic.c | ||
support.S | ||
swtch.S | ||
sys_machdep.c | ||
tick.c | ||
tlb.c | ||
trap.c | ||
uio_machdep.c | ||
uma_machdep.c | ||
vm_machdep.c |