freebsd-dev/sys/vm
Mark Johnston 150d384e5c Fix a use-after-free in swp_pager_meta_free().
This was introduced in r326329 and explains the crashes mentioned in
the commit log message for r339934.  In particular, on INVARIANTS
kernels, UMA trashing causes the loop to exit early, leaving swap
blocks behind when they should have been freed.  After r336984 this
became more problematic since new anonymous mappings were more
likely to reuse swapped-out subranges of existing VM objects, so faults
would trigger pageins of freed memory rather than returning zeroed
pages.

Reviewed by:	kib
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D17897
2018-11-07 23:28:11 +00:00
..
_vm_radix.h
default_pager.c
device_pager.c
memguard.c
memguard.h
phys_pager.c
pmap.h Add pmap_is_valid_memattr(9). 2018-08-01 18:45:51 +00:00
redzone.c
redzone.h
sg_pager.c
swap_pager.c Fix a use-after-free in swp_pager_meta_free(). 2018-11-07 23:28:11 +00:00
swap_pager.h
uma_core.c Add malloc_domainset(9) and _domainset variants to other allocator KPIs. 2018-10-30 18:26:34 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h Add an #include required after r339686. 2018-10-24 16:49:16 +00:00
uma.h Eliminate the arena parameter to kmem_free(). Implicitly this corrects an 2018-08-25 19:38:08 +00:00
vm_domainset.c Add a !NUMA definition for vm_domainset_iter_policy_ref_init(). 2018-10-24 17:09:20 +00:00
vm_domainset.h Refactor domainset iterators for use by malloc(9) and UMA. 2018-10-23 16:35:58 +00:00
vm_extern.h Add malloc_domainset(9) and _domainset variants to other allocator KPIs. 2018-10-30 18:26:34 +00:00
vm_fault.c Eliminate typically pointless calls to vm_fault_prefault() on soft, copy- 2018-10-27 17:49:46 +00:00
vm_glue.c Refactor domainset iterators for use by malloc(9) and UMA. 2018-10-23 16:35:58 +00:00
vm_init.c Fix some problems that manifest when NUMA domain 0 is empty. 2018-10-30 17:57:40 +00:00
vm_kern.c Avoid specifying VM_PROT_EXECUTE in mappings from pipe_map and exec_map. 2018-11-06 21:57:03 +00:00
vm_kern.h Ensure that imports into per-domain kmem arenas are KVA_QUANTUM-aligned. 2018-09-20 18:29:55 +00:00
vm_map.c Initialize the eflags field of vm_map headers. 2018-11-02 16:26:44 +00:00
vm_map.h Initialize the eflags field of vm_map headers. 2018-11-02 16:26:44 +00:00
vm_meter.c Add a per-pagequeue pdpages counter. 2018-08-23 21:03:45 +00:00
vm_mmap.c vm: stop taking proc lock in mmap to satisfy racct if it is disabled 2018-09-18 01:24:30 +00:00
vm_object.c Revert r336984. 2018-10-30 22:40:40 +00:00
vm_object.h
vm_page.c Fix some problems that manifest when NUMA domain 0 is empty. 2018-10-30 17:57:40 +00:00
vm_page.h Remove vm_page_remque(). 2018-09-06 16:17:45 +00:00
vm_pageout.c Initialize last_target in the laundry thread control loop. 2018-11-06 02:52:54 +00:00
vm_pageout.h Avoid resource deadlocks when one domain has exhausted its memory. Attempt 2018-09-06 19:28:52 +00:00
vm_pagequeue.h Allow empty NUMA memory domains to support Threadripper2 2018-10-01 14:14:21 +00:00
vm_pager.c
vm_pager.h
vm_param.h
vm_phys.c Initialize static domainsets regardless of whether an SRAT is present. 2018-10-23 18:07:16 +00:00
vm_phys.h Create some global domainsets and refactor NUMA registration. 2018-10-20 17:36:00 +00:00
vm_radix.c vm: stop passing M_ZERO when allocating radix nodes 2018-06-24 13:08:05 +00:00
vm_radix.h
vm_reserv.c Use the ticks since the last update to reduce hysteresis in the partpopq and 2018-07-07 01:54:45 +00:00
vm_reserv.h
vm_swapout_dummy.c
vm_swapout.c Avoid a redundancy in a comment updated by r339601. 2018-10-22 17:17:30 +00:00
vm_unix.c Use __riscv to determine building for RISC-V 2018-07-23 19:49:54 +00:00
vm.h
vnode_pager.c
vnode_pager.h