freebsd-skq/sys/vm
Konstantin Belousov cd85379104 Make MAXPHYS tunable. Bump MAXPHYS to 1M.
Replace MAXPHYS by runtime variable maxphys. It is initialized from
MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys.

Make b_pages[] array in struct buf flexible.  Size b_pages[] for buffer
cache buffers exactly to atop(maxbcachebuf) (currently it is sized to
atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1.
The +1 for pbufs allow several pbuf consumers, among them vmapbuf(),
to use unaligned buffers still sized to maxphys, esp. when such
buffers come from userspace (*).  Overall, we save significant amount
of otherwise wasted memory in b_pages[] for buffer cache buffers,
while bumping MAXPHYS to desired high value.

Eliminate all direct uses of the MAXPHYS constant in kernel and driver
sources, except a place which initialize maxphys.  Some random (and
arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted
straight.  Some drivers, which use MAXPHYS to size embeded structures,
get private MAXPHYS-like constant; their convertion is out of scope
for this work.

Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs,
dev/siis, where either submitted by, or based on changes by mav.

Suggested by: mav (*)
Reviewed by:	imp, mav, imp, mckusick, scottl (intermediate versions)
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D27225
2020-11-28 12:12:51 +00: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: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
device_pager.c Don't hold the object lock while calling getpages. 2020-01-19 23:47:32 +00:00
memguard.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
memguard.h LinuxKPI: Implement ksize() function. 2020-08-29 19:26:31 +00:00
phys_pager.c Allow consumer to customize physical pager. 2020-09-09 00:00:43 +00: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 vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
redzone.h
sg_pager.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
swap_pager.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
swap_pager.h Remove swblk_t. 2020-02-17 15:11:07 +00:00
uma_core.c vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +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
uma_int.h vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
uma.h Add more per-cpu zones. 2020-11-09 00:34:23 +00:00
vm_domainset.c Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_domainset.h Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_dumpset.h Avoid dump_avail[] redefinition. 2020-10-14 22:51:40 +00:00
vm_extern.h Remove the VM map zone. 2020-08-17 13:02:01 +00:00
vm_fault.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vm_glue.c vmspace: Convert to refcount(9) 2020-11-04 16:30:56 +00:00
vm_init.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vm_kern.c vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_kern.h Remove the VM map zone. 2020-08-17 13:02:01 +00:00
vm_map.c vm_map: Handle kernel map entry allocator recursion 2020-11-11 17:16:39 +00:00
vm_map.h Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vm_meter.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
vm_mmap.c Support for userspace non-transparent superpages (largepages). 2020-09-09 22:12:51 +00:00
vm_object.c Allow consumer to customize physical pager. 2020-09-09 00:00:43 +00:00
vm_object.h Allow consumer to customize physical pager. 2020-09-09 00:00:43 +00:00
vm_page.c Wrap a long line in vm_pqbatch_process_page() 2020-11-19 15:41:42 +00:00
vm_page.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_pageout.c vm_pageout: Avoid rounding down the inactive scan target 2020-10-02 19:16:06 +00:00
vm_pageout.h Add interruptible variant of vm_wait(9), vm_wait_intr(9). 2020-09-08 23:28:09 +00:00
vm_pagequeue.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_pager.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vm_pager.h Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vm_param.h (fault 3/9) Move map relookup into a dedicated function. 2020-01-23 05:07:01 +00:00
vm_phys.c vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_phys.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_radix.c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
vm_radix.h Use SMR to provide a safe unlocked lookup for vm_radix. 2020-02-19 19:58:31 +00:00
vm_reserv.c vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
vm_reserv.h Fix locking in vm_reserv_reclaim_contig(). 2019-11-22 16:28:52 +00:00
vm_swapout_dummy.c
vm_swapout.c Use a single VM object for kernel stacks. 2020-04-26 20:08:57 +00:00
vm_unix.c Prepare to handle non-trivial errors from vm_map_delete(). 2020-09-09 21:34:31 +00:00
vm.h vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
vnode_pager.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vnode_pager.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00