freebsd-dev/sys/vm
Mateusz Guzik a8c8e44bf0 vfs: manage mnt_ref with atomics
New primitive is introduced to denote sections can operate locklessly
on aspects of struct mount, but which can also be disabled if necessary.
This provides an opportunity to start scaling common case modifications
while providing stable state of the struct when facing unmount, write
suspendion or other events.

mnt_ref is the first counter to start being managed in this manner with
the intent to make it per-cpu.

Reviewed by:	kib, jeff
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D21425
2019-09-16 21:31:02 +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 Change synchonization rules for vm_page reference counting. 2019-09-09 21:32:42 +00:00
memguard.c Add a vm_page_wired() predicate. 2019-06-02 01:00:17 +00:00
memguard.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
phys_pager.c Use the sleepq lock rather than the page lock to protect against wakeup 2019-09-10 18:27:45 +00:00
pmap.h correct pmap_ts_referenced return type 2019-07-03 19:59:56 +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 Change the vm_ooffset_t type to unsigned. 2018-12-02 13:16:46 +00:00
swap_pager.c Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +00:00
swap_pager.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uma_core.c Extend uma_reclaim() to permit different reclamation targets. 2019-09-01 22:22:43 +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 Extend uma_reclaim() to permit different reclamation targets. 2019-09-01 22:22:43 +00:00
uma.h vfs: manage mnt_ref with atomics 2019-09-16 21:31:02 +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 Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +00:00
vm_glue.c Replace redundant code with a few new vm_page_grab facilities: 2019-09-10 19:08:01 +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 Map the vm_page array into KVA on amd64. 2019-09-03 13:18:51 +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 madvise(MADV_FREE): Quick fix to time rewind. 2019-09-04 20:28:16 +00:00
vm_map.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00
vm_meter.c Provide separate accounting for user-wired pages. 2019-05-13 16:38:48 +00:00
vm_mmap.c Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +00:00
vm_object.c Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +00:00
vm_object.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00
vm_page.c Fix a race in vm_page_dequeue_deferred_free() after r352110. 2019-09-16 15:12:49 +00:00
vm_page.h Assert that the refcount value is not VPRC_BLOCKED in vm_page_drop(). 2019-09-16 15:16:48 +00:00
vm_pageout.c Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +00:00
vm_pageout.h Fix OOM handling of some corner cases. 2019-08-16 09:43:49 +00:00
vm_pagequeue.h Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +00:00
vm_pager.c Do not reserve KVA for paging bufs in vm_ksubmap_init(), since now 2019-01-16 20:14:16 +00:00
vm_pager.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00
vm_param.h Move phys_avail definition into MI code. It is consumed in the MI layer and 2019-08-16 00:45:14 +00:00
vm_phys.c Remove unnecessary debugging from r351181 that caused powerpc build to fail. 2019-08-18 08:07:31 +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 Allocate amd64's page array using pages and page directory pages from the 2019-08-18 23:07:56 +00:00
vm_reserv.h Allocate amd64's page array using pages and page directory pages from the 2019-08-18 23:07:56 +00:00
vm_swapout_dummy.c SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
vm_swapout.c Revert r352406, which contained changes I didn't intend to commit. 2019-09-16 15:04:45 +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 vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00
vnode_pager.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00