freebsd-dev/sys/vm
Konstantin Belousov aa9bc3b171 Prevent parallel object collapses. Both vm_object_collapse_scan() and
swap_pager_copy() might unlock the object, which allows the parallel
collapse to execute.  Besides destroying the object, it also might
move the reference from parent to the backing object, firing the
assertion ref_count == 1.

Collapses are prevented by bumping paging_in_progress counters on both
the object and its backing object.

Reported by:	cem
Tested by:	pho (previous version)
Reviewed by:	alc
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
X-Differential revision:	https://reviews.freebsd.org/D6085
2016-05-26 16:59:29 +00:00
..
_vm_radix.h
default_pager.c
device_pager.c Avoid duplicated calls to pmap_page_get_memattr(). 2016-05-01 17:48:43 +00:00
memguard.c Include sys/_task.h into uma_int.h, so that taskqueue.h isn't a 2016-02-09 20:22:35 +00:00
memguard.h
phys_pager.c sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
pmap.h
redzone.c
redzone.h
sg_pager.c Plug a vm_page leak introduced in r292373. 2016-02-05 19:35:53 +00:00
swap_pager.c Remove Giant around allocation of the swap pager with non-NULL handle. 2016-05-24 10:16:03 +00:00
swap_pager.h
uma_core.c sys/vm: minor spelling fixes in comments. 2016-05-02 20:16:29 +00:00
uma_dbg.c Include sys/_task.h into uma_int.h, so that taskqueue.h isn't a 2016-02-09 20:22:35 +00:00
uma_dbg.h Move uma_dbg_alloc() and uma_dbg_free() into uma_core.c, which allows 2016-02-03 22:02:36 +00:00
uma_int.h sys/vm: minor spelling fixes in comments. 2016-05-02 20:16:29 +00:00
uma.h Remove UMA_ZONE_REFCNT feature, now unused. 2016-03-01 00:33:32 +00:00
vm_domain.c Move vm_domain_rr_selectdomain() under #ifdef VM_NUMA_ALLOC. 2016-05-10 22:25:55 +00:00
vm_domain.h
vm_extern.h Various cleanups to the main function for AIO kernel processes: 2016-01-19 21:37:51 +00:00
vm_fault.c Correct an error in a comment: One of the conditions for page allocation 2016-05-23 16:59:05 +00:00
vm_glue.c Remove false claim. Giant is dropped by mi_startup() before passing 2016-05-22 19:25:53 +00:00
vm_init.c
vm_kern.c Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
vm_kern.h
vm_map.c sys/vm: minor spelling fixes in comments. 2016-05-02 20:16:29 +00:00
vm_map.h
vm_meter.c
vm_mmap.c
vm_object.c Prevent parallel object collapses. Both vm_object_collapse_scan() and 2016-05-26 16:59:29 +00:00
vm_object.h Add implementation of robust mutexes, hopefully close enough to the 2016-05-17 09:56:22 +00:00
vm_page.c In vm_page_cache(), only drop the vnode after radix insert failure 2016-05-24 19:20:30 +00:00
vm_page.h vm/vm_page.h: Fix trivial '-Wpointer-sign' warning 2016-05-19 17:54:14 +00:00
vm_pageout.c sys/vm: minor spelling fixes in comments. 2016-05-02 20:16:29 +00:00
vm_pageout.h Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
vm_pager.c Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
vm_pager.h
vm_param.h
vm_phys.c sys: use our roundup2/rounddown2() macros when param.h is available. 2016-04-21 19:57:40 +00:00
vm_phys.h Add more fine-grained kernel options for NUMA support. 2016-04-09 13:58:04 +00:00
vm_radix.c Cleanup redundant parenthesis from existing howmany()/roundup() macro uses. 2016-04-22 16:57:42 +00:00
vm_radix.h
vm_reserv.c Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
vm_reserv.h Introduce a new mechanism for relocating virtual pages to a new physical 2015-12-19 18:42:50 +00:00
vm_unix.c
vm_zeroidle.c
vm.h Add new bus methods for mapping resources. 2016-05-20 17:57:47 +00:00
vnode_pager.c Add implementation of robust mutexes, hopefully close enough to the 2016-05-17 09:56:22 +00:00
vnode_pager.h