mirror of
https://github.com/opnsense/src.git
synced 2026-02-15 08:38:13 -05:00
syncs the entire underlying file rather then just the requested range,
resulting in huge inefficiencies when the VM system is articulated in
a certain way. The VOP_FSYNC was also found to massively reduce NFS
performance in certain cases.
Change MADV_DONTNEED and MADV_FREE to call vm_page_dontneed() instead
of vm_page_deactivate(). Using vm_page_deactivate() causes all
inactive and cache pages to be recycled before the dontneed/free page
is recycled, effectively flushing our entire VM inactive & cache
queues continuously even if only a few pages are being actively MADV
free'd and reused (such as occurs with a sequential scan of a
memory-mapped file).
Reviewed by: Alan Cox <alc@cs.rice.edu>, David Greenman <dg@root.com>
|
||
|---|---|---|
| .. | ||
| default_pager.c | ||
| default_pager.h | ||
| device_pager.c | ||
| pmap.h | ||
| swap_pager.c | ||
| swap_pager.h | ||
| vm.h | ||
| vm_extern.h | ||
| vm_fault.c | ||
| vm_glue.c | ||
| vm_inherit.h | ||
| vm_init.c | ||
| vm_kern.c | ||
| vm_kern.h | ||
| vm_map.c | ||
| vm_map.h | ||
| vm_meter.c | ||
| vm_mmap.c | ||
| vm_object.c | ||
| vm_object.h | ||
| vm_page.c | ||
| vm_page.h | ||
| vm_pageout.c | ||
| vm_pageout.h | ||
| vm_pager.c | ||
| vm_pager.h | ||
| vm_param.h | ||
| vm_prot.h | ||
| vm_swap.c | ||
| vm_unix.c | ||
| vm_zone.c | ||
| vm_zone.h | ||
| vnode_pager.c | ||
| vnode_pager.h | ||