freebsd-dev/sys/vm
Mark Johnston c2655a40a7 Avoid unnecessary page lookups in vm_object_madvise().
vm_object_madvise() is frequently used to apply advice to a contiguous
set of pages in an object with no backing object. Optimize this case by
skipping non-resident subranges in constant time, and by iterating over
resident pages using the object memq, thus avoiding radix tree lookups on
each page index in the specified range.

While here, move MADV_WILLNEED handling to vm_page_advise(), and rename the
"advise" parameter to vm_object_madvise() to "advice."

Reviewed by:	alc, kib
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D9098
2017-01-15 03:50:08 +00:00
..
_vm_radix.h
default_pager.c Provide introductory description of the default pager. 2016-12-14 23:36:32 +00:00
device_pager.c Add a new populate() pager method and extend device pager ops vector 2016-12-08 11:26:11 +00:00
memguard.c
memguard.h
phys_pager.c Implement the populate() pager method for phys pager. 2016-12-08 11:35:53 +00:00
pmap.h
redzone.c
redzone.h
sg_pager.c
swap_pager.c Add a page queue for holding dirty anonymous unswappable pages. 2017-01-03 00:05:44 +00:00
swap_pager.h Add a page queue for holding dirty anonymous unswappable pages. 2017-01-03 00:05:44 +00:00
uma_core.c Print flags in hex instead of decimal. 2017-01-02 16:50:52 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h
uma.h
vm_domain.c Remove cpu_spinwait after seq_consistent. 2016-12-30 06:26:17 +00:00
vm_domain.h
vm_extern.h
vm_fault.c Fix two similar bugs in the populate vm_fault() code. 2016-12-30 18:55:33 +00:00
vm_glue.c
vm_init.c Remove a redundant use of min(). 2017-01-05 03:13:45 +00:00
vm_kern.c Add a small allocator for exec_map entries. 2017-01-05 01:44:12 +00:00
vm_kern.h Add a small allocator for exec_map entries. 2017-01-05 01:44:12 +00:00
vm_map.c Style fixes for vm_map_insert(). 2017-01-01 18:49:46 +00:00
vm_map.h
vm_meter.c Remove redundancy in vmtotal(). 2016-12-26 19:29:04 +00:00
vm_mmap.c
vm_object.c Avoid unnecessary page lookups in vm_object_madvise(). 2017-01-15 03:50:08 +00:00
vm_object.h Eliminate every mention of PG_CACHED pages from the comments in the machine- 2016-12-12 17:47:09 +00:00
vm_page.c Avoid unnecessary page lookups in vm_object_madvise(). 2017-01-15 03:50:08 +00:00
vm_page.h Move bogus_page declaration to vm_page.h and initialization to vm_page.c. 2017-01-04 22:27:19 +00:00
vm_pageout.c Add a page queue for holding dirty anonymous unswappable pages. 2017-01-03 00:05:44 +00:00
vm_pageout.h
vm_pager.c Move bogus_page declaration to vm_page.h and initialization to vm_page.c. 2017-01-04 22:27:19 +00:00
vm_pager.h Add a new populate() pager method and extend device pager ops vector 2016-12-08 11:26:11 +00:00
vm_param.h
vm_phys.c
vm_phys.h
vm_radix.c Previously, vm_radix_remove() would panic if the radix trie didn't 2016-12-08 04:29:29 +00:00
vm_radix.h Previously, vm_radix_remove() would panic if the radix trie didn't 2016-12-08 04:29:29 +00:00
vm_reserv.c Relax the object type restrictions on vm_page_alloc_contig(). Specifically, 2016-12-28 18:32:13 +00:00
vm_reserv.h Relax the object type restrictions on vm_page_alloc_contig(). Specifically, 2016-12-28 18:32:13 +00:00
vm_unix.c
vm.h
vnode_pager.c Fix the contiguity once more. 2017-01-12 20:26:02 +00:00
vnode_pager.h