mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
479112dfd9
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_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 | ||
vm.h | ||
vnode_pager.c | ||
vnode_pager.h |