freebsd-skq/sys/vm
Alan Cox 22cf98d1f3 The intention of r254304 was to scan the active queue continuously.
However, I've observed the active queue scan stopping when there are
frequent free page shortages and the inactive queue is steadily refilled
by other mechanisms, such as the sequential access heuristic in vm_fault()
or madvise(2).  To remedy this problem, record the time of the last active
queue scan, and always scan a number of pages proportional to the time
since the last scan, regardless of whether that last scan was a
timeout-triggered ("pass == 0") or free-page-shortage-triggered ("pass >
0") scan.

Also, on a timeout-triggered scan, allow a full scan of the active queue
when the system is short of inactive pages.

Reviewed by:	kib
MFC after:	6 weeks
Sponsored by:	EMC / Isilon Storage Division
2015-07-08 17:45:59 +00:00
..
_vm_radix.h On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
default_pager.c Place VM objects on the object list when created and never remove them. 2015-05-08 19:43:37 +00:00
device_pager.c Place VM objects on the object list when created and never remove them. 2015-05-08 19:43:37 +00:00
memguard.c Add comments about CTLFLAG_RDTUN vs. TUNABLE_INT_FETCH. 2015-03-26 05:20:18 +00:00
memguard.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
phys_pager.c Place VM objects on the object list when created and never remove them. 2015-05-08 19:43:37 +00:00
pmap.h Change pmap_enter(9) interface to take flags parameter and superpage 2014-08-08 17:12:03 +00:00
redzone.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
redzone.h
sg_pager.c Place VM objects on the object list when created and never remove them. 2015-05-08 19:43:37 +00:00
swap_pager.c o Un-inline vm_pager_get_pages(), vm_pager_get_pages_async(). 2015-06-17 22:44:27 +00:00
swap_pager.h
uma_core.c Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
uma_dbg.c If INVARIANTS is specified, add ctor/dtor to junk memory if they are 2015-06-25 20:44:46 +00:00
uma_dbg.h
uma_int.h Revert r281451. It causes a panic/hang early in boot for a number of 2015-04-24 17:03:53 +00:00
uma.h The vmem callback to reclaim kmem arena address space on low or 2015-05-09 20:08:36 +00:00
vm_extern.h Add a new file operations hook for mmap operations. File type-specific 2015-06-04 19:41:15 +00:00
vm_fault.c Make KPI of vm_pager_get_pages() more strict: if a pager changes a page 2015-06-12 11:32:20 +00:00
vm_glue.c Make KPI of vm_pager_get_pages() more strict: if a pager changes a page 2015-06-12 11:32:20 +00:00
vm_init.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
vm_kern.c Correct a type error in kmem_unback(). Previously, kmem_unback() did not 2015-06-10 05:17:14 +00:00
vm_kern.h - Add a statically allocated memguard arena since it is needed very early 2013-08-13 22:40:43 +00:00
vm_map.c Account for the main process stack being one page below the highest 2015-07-02 15:22:13 +00:00
vm_map.h Oops. vm_map_simplify_entry() is used by mac_proc_vm_revoke_recurse(), so 2014-09-08 02:25:01 +00:00
vm_meter.c Place VM objects on the object list when created and never remove them. 2015-05-08 19:43:37 +00:00
vm_mmap.c Add a local variable initialization needed in the OBJT_DEFAULT case. 2015-07-05 22:26:19 +00:00
vm_object.c Make KPI of vm_pager_get_pages() more strict: if a pager changes a page 2015-06-12 11:32:20 +00:00
vm_object.h Provide vnode in memory map info for files on tmpfs 2015-06-02 18:37:04 +00:00
vm_page.c Retire VM_FREEPOOL_CACHE as the next step in eliminating PG_CACHE pages. 2015-06-08 04:59:32 +00:00
vm_page.h The intention of r254304 was to scan the active queue continuously. 2015-07-08 17:45:59 +00:00
vm_pageout.c The intention of r254304 was to scan the active queue continuously. 2015-07-08 17:45:59 +00:00
vm_pageout.h
vm_pager.c o Un-inline vm_pager_get_pages(), vm_pager_get_pages_async(). 2015-06-17 22:44:27 +00:00
vm_pager.h o Un-inline vm_pager_get_pages(), vm_pager_get_pages_async(). 2015-06-17 22:44:27 +00:00
vm_param.h Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_phys.c Add initial memory locality cost awareness to the VM, and include 2015-05-08 00:56:56 +00:00
vm_phys.h oops - how'd i miss this. Sorry! 2015-05-08 06:02:23 +00:00
vm_radix.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
vm_radix.h Eliminate a redundant parameter to vm_radix_replace(). 2013-12-08 20:07:02 +00:00
vm_reserv.c Retire VM_FREEPOOL_CACHE as the next step in eliminating PG_CACHE pages. 2015-06-08 04:59:32 +00:00
vm_reserv.h
vm_unix.c Implement lockless resource limits. 2015-06-10 10:48:12 +00:00
vm_zeroidle.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
vm.h rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
vnode_pager.c Satisfy vm_object uma zone destructor requirements after r282660 when 2015-05-10 08:21:03 +00:00
vnode_pager.h Merge from projects/sendfile: 2014-11-23 12:01:52 +00:00