opnsense-src/sys/vm
Doug Moore 0d5fac2872 vm: alloc pages from reserv before breaking it
Function vm_reserv_reclaim_contig breaks a reservation with enough
free space to satisfy an allocation request and returns the free space
to the buddy allocator. Change the function to allocate the request
memory from the reservation before breaking it, and return that memory
to the caller. That avoids a second call to the buddy allocator and
guarantees successful allocation after breaking the reservation, where
that success is not currently guaranteed.

Reviewed by:	alc, kib (previous version)
Differential Revision:	https://reviews.freebsd.org/D33644
2021-12-24 12:59:16 -06:00
..
_vm_phys.h vm_phys: Try to clean up NUMA KPIs 2020-11-19 03:59:21 +00:00
_vm_radix.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
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 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 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 sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
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 swapoff: add one more variant of the syscall 2021-12-09 02:48:46 +02:00
swap_pager.h swapoff: add one more variant of the syscall 2021-12-09 02:48:46 +02:00
uma.h Remove some remaining references to VM_ALLOC_NOOBJ 2021-10-19 21:22:56 -04:00
uma_core.c uma: remove unused *item argument from cache_free() 2021-12-05 10:44:47 -08: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 Improve UMA cache reclamation. 2021-05-02 19:45:23 -04:00
vm.h tmpfs: dynamically register tmpfs pager 2021-05-13 20:13:34 +03: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 minidump: Use the provided dump bitset 2021-11-19 15:05:52 -04:00
vm_extern.h Add vnode_pager_purge_range(9) KPI 2021-08-05 22:52:26 +08: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 Fix a common typo in syctl descriptions 2021-11-03 20:49:24 +01: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 Remove the VM map zone. 2020-08-17 13:02:01 +00:00
vm_map.c setrlimit: Take stack gap into account. 2021-10-15 10:21:47 +02:00
vm_map.h setrlimit: Take stack gap into account. 2021-10-15 10:21:47 +02:00
vm_meter.c vm_object: Make is_object_active() global 2021-12-19 16:11:44 -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 vm: alloc pages from reserv before breaking it 2021-12-24 12:59:16 -06: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 Fix a few typos in source code comments 2021-08-14 09:06:09 +02: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 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 (fault 3/9) Move map relookup into a dedicated function. 2020-01-23 05:07:01 +00:00
vm_phys.c minidump: De-duplicate is_dumpable() 2021-09-29 16:41:52 -03:00
vm_phys.h minidump: De-duplicate is_dumpable() 2021-09-29 16:41:52 -03: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: alloc pages from reserv before breaking it 2021-12-24 12:59:16 -06:00
vm_reserv.h vm: alloc pages from reserv before breaking it 2021-12-24 12:59:16 -06:00
vm_swapout.c Make vmdaemon timeout configurable 2021-10-17 13:49:29 +01:00
vm_swapout_dummy.c SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
vm_unix.c Prepare to handle non-trivial errors from vm_map_delete(). 2020-09-09 21:34:31 +00:00
vnode_pager.c Add vnode_pager_purge_range(9) KPI 2021-08-05 22:52:26 +08:00
vnode_pager.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00