freebsd-skq/sys/vm
Mark Johnston 860bb7a04c UMA: Don't destroy zones after the system shutdown process starts.
Some kernel subsystems, notably ZFS, will destroy UMA zones from a
shutdown eventhandler.  This causes the zone to be drained.  For slabs
that are mapped into KVA this can be very expensive and so it needlessly
delays the shutdown process.

Add a new state to the "booted" variable, BOOT_SHUTDOWN.  Once
kern_reboot() starts invoking shutdown handlers, turn uma_zdestroy()
into a no-op, provided that the zone does not have a custom finalization
routine.

PR:		242427
Reviewed by:	jeff, kib, rlibby
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D23066
2020-01-09 19:17:42 +00:00
..
_vm_radix.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
default_pager.c SPDX: wrong license. 2017-11-30 15:45:42 +00:00
device_pager.c Make page busy state deterministic on free. Pages must be xbusy when 2019-12-22 06:56:44 +00:00
memguard.c Introduce vm_page_astate. 2019-12-10 18:14:50 +00:00
memguard.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
phys_pager.c (4/6) Protect page valid with the busy lock. 2019-10-15 03:45:41 +00:00
pmap.h Remove page locking from pmap_mincore(). 2019-10-16 22:03:27 +00:00
redzone.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
redzone.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
sg_pager.c Make page busy state deterministic on free. Pages must be xbusy when 2019-12-22 06:56:44 +00:00
swap_pager.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
swap_pager.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uma_core.c UMA: Don't destroy zones after the system shutdown process starts. 2020-01-09 19:17:42 +00:00
uma_dbg.c Fix compilation failures on different arches that have vm_machdep.c not 2019-01-15 19:33:47 +00:00
uma_dbg.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
uma_int.h uma: unify layout paths and improve efficiency 2020-01-09 02:03:17 +00:00
uma.h uma: reorganize flags 2020-01-09 02:03:03 +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 Improve MD page fault handlers. 2019-09-27 18:43:36 +00:00
vm_fault.c Remove page locking for queue operations. 2019-12-28 19:04:00 +00:00
vm_glue.c UMA NUMA flag day. UMA_ZONE_NUMA was a source of confusion. Make the names 2020-01-04 18:48:13 +00:00
vm_init.c Do not reserve KVA for paging bufs in vm_ksubmap_init(), since now 2019-01-16 20:14:16 +00:00
vm_kern.c Make page busy state deterministic on free. Pages must be xbusy when 2019-12-22 06:56:44 +00:00
vm_kern.h Do not reserve KVA for paging bufs in vm_ksubmap_init(), since now 2019-01-16 20:14:16 +00:00
vm_map.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
vm_map.h Revert r355505. The code that it allowed to compile has been removed. 2019-12-09 05:09:46 +00:00
vm_meter.c Simplify anonymous memory handling with an OBJ_ANON flag. This eliminates 2019-11-19 23:19:43 +00:00
vm_mmap.c kern_mmap: restore character deleted in transit 2020-01-04 23:51:44 +00:00
vm_object.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
vm_object.h Store the bottom of the shadow chain in OBJ_ANON object->handle member. 2019-12-01 20:43:04 +00:00
vm_page.c Fix uma boot pages calculations on NUMA machines that also don't have 2020-01-06 02:51:19 +00:00
vm_page.h Remove some unused functions. 2019-12-28 19:04:29 +00:00
vm_pageout.c Clear queue operation flags when migrating a page to another queue. 2020-01-02 19:26:04 +00:00
vm_pageout.h Fix OOM handling of some corner cases. 2019-08-16 09:43:49 +00:00
vm_pagequeue.h Simplify vm_pageout_init_domain() and add a "big picture" comment. 2019-11-22 16:31:43 +00:00
vm_pager.c Add couple more assertions to vm_pager_assert_in(). The bogus page is 2019-10-25 16:59:54 +00:00
vm_pager.h Add a deferred free mechanism for freeing swap space that does not require 2019-12-15 03:15:06 +00:00
vm_param.h Improve MD page fault handlers. 2019-09-27 18:43:36 +00:00
vm_phys.c Fix typo using RB_INITIALIZER. 2019-12-22 21:53:05 +00:00
vm_phys.h Encapsulate phys_avail manipulation in a set of simple routines. Add a 2019-08-18 07:06:31 +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 sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
vm_reserv.c Fix locking in vm_reserv_reclaim_contig(). 2019-11-22 16:28:52 +00:00
vm_reserv.h Fix locking in vm_reserv_reclaim_contig(). 2019-11-22 16:28:52 +00:00
vm_swapout_dummy.c SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
vm_swapout.c Remove page locking for queue operations. 2019-12-28 19:04:00 +00:00
vm_unix.c Provide separate accounting for user-wired pages. 2019-05-13 16:38:48 +00:00
vm.h Move vm_ndomains to vm.h where it can be used with a single header include 2018-03-27 03:27:02 +00:00
vnode_pager.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
vnode_pager.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00