freebsd-skq/sys/vm
Konstantin Belousov 3407fefef6 Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic
flags field. Updates to the atomic flags are performed using the atomic
ops on the containing word, do not require any vm lock to be held, and
are non-blocking. The vm_page_aflag_set(9) and vm_page_aflag_clear(9)
functions are provided to modify afalgs.

Document the changes to flags field to only require the page lock.

Introduce vm_page_reference(9) function to provide a stable KPI and
KBI for filesystems like tmpfs and zfs which need to mark a page as
referenced.

Reviewed by:    alc, attilio
Tested by:      marius, flo (sparc64); andreast (powerpc, powerpc64)
Approved by:	re (bz)
2011-09-06 10:30:11 +00:00
..
default_pager.c
device_pager.c Fix a race in the device pager allocation. If another thread won and 2011-07-30 14:13:57 +00:00
memguard.c
memguard.h
phys_pager.c
pmap.h
redzone.c
redzone.h
sg_pager.c
swap_pager.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
swap_pager.h Implement the linprocfs swaps file, providing information about the 2011-08-01 19:12:15 +00:00
uma_core.c
uma_dbg.c
uma_dbg.h
uma_int.h
uma.h
vm_contig.c Fix an error in kmem_alloc_attr(). Unless "tries" is updated, 2011-08-07 00:11:39 +00:00
vm_extern.h Extract the code to translate VM error into errno, into an exported 2011-07-10 20:49:13 +00:00
vm_fault.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_glue.c All the racct_*() calls need to happen with the proc locked. Fixing this 2011-07-06 20:06:44 +00:00
vm_init.c
vm_kern.c - Move the PG_UNMANAGED flag from m->flags to m->oflags, renaming the flag 2011-08-09 21:01:36 +00:00
vm_kern.h
vm_map.c All the racct_*() calls need to happen with the proc locked. Fixing this 2011-07-06 20:06:44 +00:00
vm_map.h
vm_meter.c
vm_mmap.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_object.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_object.h
vm_page.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_page.h Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_pageout.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vm_pageout.h
vm_pager.c
vm_pager.h
vm_param.h
vm_phys.c
vm_phys.h
vm_reserv.c
vm_reserv.h
vm_unix.c All the racct_*() calls need to happen with the proc locked. Fixing this 2011-07-06 20:06:44 +00:00
vm_zeroidle.c
vm.h
vnode_pager.c Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic 2011-09-06 10:30:11 +00:00
vnode_pager.h