opnsense-src/sys/vm
Doug Moore c669b08bd8 vm_phys: reduce touching of page->pool fields
Change the usage of the pool field in vm_page structs.

Currently, every page belongs to a pool, and the pool field identifies
that pool, whether the page is allocated or free.

With this change, the pool field of the first page of a free block is
used by the buddy allocator to identify its pool, but the buddy
allocator makes no guarantees about the pool field value for allocated
pages. The buddy allocator requires that a pool parameter be passed as
part of freeing memory. A function that allocates memory may use the
pool field of a page to record what pool to pass as that parameter
when the memory is freed, but might not need to do so for every
allocated page.

Suggested by:	alc
Reviewed by:	markj
Differential Revision:	https://reviews.freebsd.org/D45409
2025-01-21 16:35:25 -06:00
..
_vm_phys.h Revert "subr_pctrie: use ilog2(x) instead of fls(x)-1" 2024-06-03 13:07:42 -05:00
_vm_radix.h radix_trie: have vm_radix use pctrie code 2023-09-12 02:42:38 -05:00
device_pager.c vm_page: pass page to iter_remove 2024-12-08 14:30:22 -06:00
memguard.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
memguard.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
phys_pager.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
pmap.h pmap: move the smp_targeted_tlb_shutdown pointer stuff to amd64 pmap.h 2024-06-06 08:15:08 +03:00
redzone.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
redzone.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sg_pager.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
swap_pager.c swap_pager: fix seek_data with invalid first page 2024-11-26 12:12:08 -06:00
swap_pager.h tmpfs_vnops: move swap work to swap_pager 2024-10-24 14:24:49 -05:00
uma.h Introduce the UMA_ZONE_NOTRIM uma zone type 2025-01-15 12:23:00 -05:00
uma_align_mask.h uma: Make the cache alignment mask unsigned 2023-11-02 09:30:03 -04:00
uma_core.c Introduce the UMA_ZONE_NOTRIM uma zone type 2025-01-15 12:23:00 -05:00
uma_dbg.c Fix build on powerpc after previous commit. 2023-11-09 21:21:47 -05:00
uma_dbg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
uma_int.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vm.h vm: Remove kernel stack swapping support, part 2 2024-07-29 01:38:39 +00:00
vm_domainset.c arm64: Support the L3 ATTR_CONTIGUOUS page size in pagesizes[] 2024-07-13 12:43:42 -05:00
vm_domainset.h Avoid waiting on physical allocations that can't possibly be satisfied 2023-12-23 23:01:40 -06:00
vm_dumpset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vm_extern.h vm: Remove kernel stack swapping support, part 8 2024-07-29 01:43:59 +00:00
vm_fault.c vm_map: wrap map->system_map checks into wrapper 2024-12-09 05:27:44 +02:00
vm_glue.c vm_glue: use vm_page_alloc_domain_after 2024-10-19 15:22:20 -05:00
vm_init.c vm: Assert that pagesizes[] is sorted 2024-08-04 14:53:15 -05:00
vm_kern.c vm_phys: reduce touching of page->pool fields 2025-01-21 16:35:25 -06:00
vm_kern.h vm: Retire kmem_arena 2024-07-24 14:31:40 -05:00
vm_map.c vm_map: convert several bool members into flags 2024-12-09 05:27:44 +02:00
vm_map.h vm/vm_map.h: drop vm_flags_t 2024-12-09 05:27:44 +02:00
vm_meter.c vm_meter: Fix laundry accounting 2024-10-22 12:48:43 +00:00
vm_mmap.c vm: rename MAP_STACK_GROWS_DOWN to MAP_STACK_AREA 2024-12-06 09:46:59 +02:00
vm_object.c vm_page: pass page to iter_remove 2024-12-08 14:30:22 -06:00
vm_object.h vm_object: do not assume that un_pager.devp.dev is cdev 2024-11-06 02:11:00 +02:00
vm_page.c vm_phys: reduce touching of page->pool fields 2025-01-21 16:35:25 -06:00
vm_page.h vm_page: pass page to iter_remove 2024-12-08 14:30:22 -06:00
vm_pageout.c vm_pageout: Add a chicken switch for multithreaded PQ_INACTIVE scanning 2025-01-09 14:54:10 +00:00
vm_pageout.h vm: Remove kernel stack swapping support, part 1 2024-07-29 01:38:21 +00:00
vm_pagequeue.h vm_pageout: Add a chicken switch for multithreaded PQ_INACTIVE scanning 2025-01-09 14:54:10 +00:00
vm_pager.c pbuf_ctor(): Stop using LK_NOWAIT, use LK_NOWITNESS 2024-05-26 10:20:52 -07:00
vm_pager.h vm_page: pass page to iter_remove 2024-12-08 14:30:22 -06:00
vm_param.h sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
vm_phys.c vm_phys: reduce touching of page->pool fields 2025-01-21 16:35:25 -06:00
vm_phys.h vm_phys: reduce touching of page->pool fields 2025-01-21 16:35:25 -06:00
vm_radix.c uma: Deduplicate uma_small_alloc 2024-05-25 19:24:46 +02:00
vm_radix.h vm_radix: Add iter lookup_le interface 2024-11-09 13:32:58 -06:00
vm_reserv.c vm_phys: reduce touching of page->pool fields 2025-01-21 16:35:25 -06:00
vm_reserv.h vm_reserv: Add vm_reserv_is_populated 2024-04-07 12:28:52 -05:00
vm_swapout.c conf: Remove kernel stack swapping support, part 12 2024-07-29 01:43:59 +00:00
vm_unix.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vnode_pager.c buf: Add a runningbufclaim() helper 2024-11-22 14:03:40 +00:00
vnode_pager.h Add vnode_pager_clean_{a,}sync(9) 2024-01-11 18:44:53 +02:00