freebsd-src/sys/vm
Konstantin Belousov c325e866f4 Different consumers of the struct vm_page abuse pageq member to keep
additional information, when the page is guaranteed to not belong to a
paging queue.  Usually, this results in a lot of type casts which make
reasoning about the code correctness harder.

Sometimes m->object is used instead of pageq, which could cause real
and confusing bugs if non-NULL m->object is leaked.  See r141955 and
r253140 for examples.

Change the pageq member into a union containing explicitly-typed
members.  Use them instead of type-punning or abusing m->object in x86
pmaps, uma and vm_page_alloc_contig().

Requested and reviewed by:	alc
Sponsored by:	The FreeBSD Foundation
2013-08-10 17:36:42 +00:00
..
_vm_radix.h On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
default_pager.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
device_pager.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
memguard.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
memguard.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
phys_pager.c The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
pmap.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
redzone.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
redzone.h
sg_pager.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
swap_pager.c The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
swap_pager.h Do not map the swap i/o pbufs if the geom provider for the swap 2013-03-19 14:39:27 +00:00
uma.h - Resolve bucket recursion issues by passing a cookie with zone flags 2013-06-26 00:57:38 +00:00
uma_core.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
uma_dbg.c - Add a per-zone lock for zones without kegs. 2013-06-20 19:08:12 +00:00
uma_dbg.h
uma_int.h Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
vm.h rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
vm_extern.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
vm_fault.c On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
vm_glue.c The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
vm_init.c Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
vm_kern.c Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
vm_kern.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
vm_map.c Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
vm_map.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
vm_meter.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
vm_mmap.c Fix previous commit when option RACCT is not used. 2013-07-22 22:16:47 +00:00
vm_object.c On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
vm_object.h On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
vm_page.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
vm_page.h Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
vm_pageout.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
vm_pageout.h Move what remains of vm/vm_contig.c into vm/vm_pageout.c, where similar 2012-07-18 05:21:34 +00:00
vm_pager.c - Add a general purpose resource allocator, vmem, from NetBSD. It was 2013-06-28 03:51:20 +00:00
vm_pager.h - Add a general purpose resource allocator, vmem, from NetBSD. It was 2013-06-28 03:51:20 +00:00
vm_param.h Remove unused definition for CTL_VM_NAMES. 2013-08-09 23:47:43 +00:00
vm_phys.c Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
vm_phys.h Split the pagequeues per NUMA domains, and split pageademon process 2013-08-07 16:36:38 +00:00
vm_radix.c On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
vm_radix.h On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
vm_reserv.c Refactor vm_page_alloc()'s interactions with vm_reserv_alloc_page() and 2013-05-12 16:50:18 +00:00
vm_reserv.h Refactor vm_page_alloc()'s interactions with vm_reserv_alloc_page() and 2013-05-12 16:50:18 +00:00
vm_unix.c - Improve readability of sys_obreak(). 2013-01-11 09:58:35 +00:00
vm_zeroidle.c Split the pagequeues per NUMA domains, and split pageademon process 2013-08-07 16:36:38 +00:00
vnode_pager.c The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
vnode_pager.h Account the writeable shared mappings backed by file in the vnode 2012-02-23 21:07:16 +00:00