mirror of
https://github.com/opnsense/src.git
synced 2026-03-16 15:48:26 -04:00
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 |
||
|---|---|---|
| .. | ||
| linux_compat.c | ||
| linux_current.c | ||
| linux_hrtimer.c | ||
| linux_idr.c | ||
| linux_kmod.c | ||
| linux_kthread.c | ||
| linux_lock.c | ||
| linux_page.c | ||
| linux_pci.c | ||
| linux_radix.c | ||
| linux_rcu.c | ||
| linux_schedule.c | ||
| linux_seq_file.c | ||
| linux_slab.c | ||
| linux_tasklet.c | ||
| linux_usb.c | ||
| linux_work.c | ||