freebsd-dev/sys/vm
Doug Moore 84e2ae64c5 vm_reserv: use enhanced bitstring for popmaps
vm_reserv.c uses its own bitstring implemenation for popmaps. Using
the bitstring_t type from a standard header eliminates the code
duplication, allows some bit-at-a-time operations to be replaced with
more efficient bitstring range operations, and, in
vm_reserv_test_contig, allows bit_ffc_area_at to more efficiently
search for a big-enough set of consecutive zero-bits.

Make bitstring changes improve the vm_reserv code.  Define a bit_ntest
method to test whether a range of bits is all set, or all clear.
Define bit_ff_at and bit_ff_area_at to implement the ffs and ffc
versions with a parameter to choose between set- and clear- bits.
Improve the area_at implementation.  Modify the bit_nset and
bit_nclear implementations to allow code optimization in the cases
when start or end are multiples of _BITSTR_BITS.

Add a few new cases to bitstring_test.

Discussed with:	alc
Reviewed by:	markj
Tested by:	pho (earlier version)
Differential Revision:	https://reviews.freebsd.org/D33312
2022-01-12 11:03:53 -06: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
memguard.h
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 Dump page tracking no longer needed on mips 2022-01-06 06:00:39 +02: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
vm_domainset.h
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
vm_map.c vm_extern: use standard address checkers everywhere 2021-12-30 22:09:08 -06:00
vm_map.h setrlimit: Take stack gap into account. 2021-10-15 10:21:47 +02:00
vm_meter.c sys/vm: Use C99 fixed-width integer types. 2021-12-28 09:43:21 -08:00
vm_mmap.c ommap: fix signed len and pos arguments 2021-11-15 18:34:28 +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: Group sysctl variables together with sysctl definitions 2022-01-11 09:27:45 -05:00
vm_pageout.h
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
vm_phys.c vm_phys: convert error back to warning 2021-12-31 00:23:46 -06:00
vm_phys.h vm_phys: hide vm_phys_set_pool 2021-12-29 11:17:33 -06:00
vm_radix.c
vm_radix.h
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