freebsd-dev/sys/vm
Konstantin Belousov 3de96d664a vm_pageout_scans: correct detection of active object
For non-anonymous swap objects, there is always a reference from the
owner to the object to keep it from recycling.  Account for it when
deciding should we query pmap for hardware active references for the
page.

As result, we avoid unneeded calls to pmap_ts_referenced(), which for
non-mapped page means avoiding unneccessary lock and unlock of the pv list.

Reviewed by:	markj
Discussed with:	alc
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D33924
2022-01-22 19:34:32 +02:00
..
_vm_phys.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
_vm_radix.h
default_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-13 20:10:35 +03:00
device_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-13 20:10:35 +03:00
memguard.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
memguard.h LinuxKPI: Implement ksize() function. 2020-08-29 19:26:31 +00:00
phys_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-13 20:10:35 +03:00
pmap.h Add pmap_enter(9) PMAP_ENTER_LARGEPAGE flag and implement it on amd64. 2020-09-09 21:50:24 +00:00
redzone.c redzone: Raise a compile error if KASAN is configured 2021-07-23 10:47:13 -04:00
redzone.h
sg_pager.c vm_object_kvme_type(): reimplement by embedding kvme_type into pagerops 2021-05-13 20:10:35 +03:00
swap_pager.c swap_pager: uma_zcreate() doesn't fail 2022-01-11 09:27:45 -05:00
swap_pager.h swapoff: add one more variant of the syscall 2021-12-09 02:48:46 +02:00
uma_core.c uma: Avoid polling for an invalid SMR sequence number 2022-01-14 15:38:02 -05:00
uma_dbg.c
uma_dbg.h
uma_int.h Improve UMA cache reclamation. 2021-05-02 19:45:23 -04:00
uma.h Remove some remaining references to VM_ALLOC_NOOBJ 2021-10-19 21:22:56 -04:00
vm_domainset.c Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_domainset.h Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_dumpset.h minidump: Use the provided dump bitset 2021-11-19 15:05:52 -04:00
vm_extern.h vm_addr_ok: add power2 invariant check 2022-01-10 01:17:25 -06:00
vm_fault.c vm_fault: Fix vm_fault_populate()'s handling of VM_FAULT_WIRE 2021-12-14 15:10:46 -05:00
vm_glue.c Remove special kstack allocation code for mips. 2022-01-06 04:43:56 +02:00
vm_init.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vm_kern.c vm_page: Handle VM_ALLOC_NORECLAIM in the contiguous page allocator 2021-11-11 14:26:41 -05:00
vm_kern.h Remove the VM map zone. 2020-08-17 13:02:01 +00:00
vm_map.c fork: Copy the vm_stacktop field into the new vmspace 2022-01-18 10:51:49 -05:00
vm_map.h exec: Reimplement stack address randomization 2022-01-17 16:12:36 -05:00
vm_meter.c sys/vm: Use C99 fixed-width integer types. 2021-12-28 09:43:21 -08:00
vm_mmap.c Revert "syscallarg_t: Add a type for system call arguments" 2022-01-12 23:29:20 +00:00
vm_object.c Eliminate key press requirement "show vmopag" command output. 2021-12-19 19:40:52 -05:00
vm_object.h vm_object: Make is_object_active() global 2021-12-19 16:11:44 -08:00
vm_page.c Dump page tracking no longer needed on mips 2022-01-06 06:00:39 +02:00
vm_page.h vm_page: Remove vm_page_sbusy() and vm_page_xbusy() 2021-11-15 13:01:30 -05:00
vm_pageout.c vm_pageout_scans: correct detection of active object 2022-01-22 19:34:32 +02:00
vm_pageout.h Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_pagequeue.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_pager.c vm_pager: Optimize an assertion 2021-11-15 13:01:30 -05:00
vm_pager.h vm: Add KPI to dynamically register pagers 2021-05-13 20:12:29 +03:00
vm_param.h (fault 3/9) Move map relookup into a dedicated function. 2020-01-23 05:07:01 +00:00
vm_phys.c vm_phys: add essential segment bounds check 2022-01-19 00:42:39 -06:00
vm_phys.h vm_phys: hide vm_phys_set_pool 2021-12-29 11:17:33 -06:00
vm_radix.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
vm_radix.h Use SMR to provide a safe unlocked lookup for vm_radix. 2020-02-19 19:58:31 +00:00
vm_reserv.c vm_reserv: use enhanced bitstring for popmaps 2022-01-12 11:03:53 -06:00
vm_reserv.h vm: alloc pages from reserv before breaking it 2021-12-24 12:59:16 -06:00
vm_swapout_dummy.c
vm_swapout.c Make vmdaemon timeout configurable 2021-10-17 13:49:29 +01:00
vm_unix.c Prepare to handle non-trivial errors from vm_map_delete(). 2020-09-09 21:34:31 +00:00
vm.h tmpfs: dynamically register tmpfs pager 2021-05-13 20:13:34 +03:00
vnode_pager.c Add vnode_pager_purge_range(9) KPI 2021-08-05 22:52:26 +08:00
vnode_pager.h