freebsd-dev/sys/vm
Konstantin Belousov 6f2af3fcf3 Rework the handling of the tmpfs node backing swap object and tmpfs
vnode v_object to avoid double-buffering.  Use the same object both as
the backing store for tmpfs node and as the v_object.

Besides reducing memory use up to 2x times for situation of mapping
files from tmpfs, it also makes tmpfs read and write operations copy
twice bytes less.

VM subsystem was already slightly adapted to tolerate OBJT_SWAP object
as v_object. Now the vm_object_deallocate() is modified to not
reinstantiate OBJ_ONEMAPPING flag and help the VFS to correctly handle
VV_TEXT flag on the last dereference of the tmpfs backing object.

Reviewed by:	alc
Tested by:	pho, bf
MFC after:	1 month
2013-04-28 19:38:59 +00:00
..
_vm_radix.h Sync back vmcontention branch into HEAD: 2013-03-18 00:25:02 +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 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
memguard.c Fix a bug with memguard(9) on 32-bit architectures without a 2012-07-15 20:29:48 +00:00
memguard.h Fix a bug with memguard(9) on 32-bit architectures without a 2012-07-15 20:29:48 +00:00
phys_pager.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
pmap.h Add pmap function pmap_copy_pages(), which copies the content of the 2013-03-14 20:18:12 +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 Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
swap_pager.c Do not map the swap i/o pbufs if the geom provider for the swap 2013-03-19 14:39:27 +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_core.c Panic if UMA_ZONE_PCPU is created at early stages of boot, when mp_ncpus 2013-04-22 09:02:23 +00:00
uma_dbg.c Convert UMA code to C99 uintXX_t types. 2013-04-09 17:43:48 +00:00
uma_dbg.h
uma_int.h Convert UMA code to C99 uintXX_t types. 2013-04-09 17:43:48 +00:00
uma.h Convert UMA code to C99 uintXX_t types. 2013-04-09 17:43:48 +00:00
vm_extern.h Eliminate vm_phys_bootstrap_alloc(). It was a failed attempt at 2011-10-30 05:06:14 +00:00
vm_fault.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
vm_glue.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
vm_init.c Only size and create the bio_transient_map when unmapped buffers are 2013-03-21 07:28:15 +00:00
vm_kern.c Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
vm_kern.h
vm_map.c Fix the assertions for the state of the object under the map entry 2013-04-09 10:04:10 +00:00
vm_map.h - Get rid of unused function vmspace_wired_count(). 2013-01-14 12:12:56 +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 Make vm_object_page_clean() and vm_mmap_vnode() tolerate the vnode' 2013-04-28 19:25:09 +00:00
vm_object.c Rework the handling of the tmpfs node backing swap object and tmpfs 2013-04-28 19:38:59 +00:00
vm_object.h Rework the handling of the tmpfs node backing swap object and tmpfs 2013-04-28 19:38:59 +00:00
vm_page.c Sync back vmcontention branch into HEAD: 2013-03-18 00:25:02 +00:00
vm_page.h The per-page act_count can be made very-easily protected by the 2013-04-08 20:02:27 +00:00
vm_pageout.c The per-page act_count can be made very-easily protected by the 2013-04-08 20:02:27 +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 Prepare to replace the buf splay with a trie: 2013-04-06 22:21:23 +00:00
vm_pager.h Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
vm_param.h On Alan's advice, rather than do a wholesale conversion on a single 2010-04-30 00:46:43 +00:00
vm_phys.c Make VM_NDOMAIN a kernel option so that it can be enabled from a kernel 2013-02-14 19:38:04 +00:00
vm_phys.h Move the declaration of vm_phys_paddr_to_vm_page() from vm/vm_page.h 2012-11-16 05:55:56 +00:00
vm_radix.c Eliminate an unneeded call to vm_radix_trimkey() from vm_radix_lookup_le(). 2013-04-28 08:29:00 +00:00
vm_radix.h Sync back vmcontention branch into HEAD: 2013-03-18 00:25:02 +00:00
vm_reserv.c Sync back vmcontention branch into HEAD: 2013-03-18 00:25:02 +00:00
vm_reserv.h Introduce vm_reserv_alloc_contig() and teach vm_page_alloc_contig() how to 2011-12-05 18:29:25 +00:00
vm_unix.c - Improve readability of sys_obreak(). 2013-01-11 09:58:35 +00:00
vm_zeroidle.c
vm.h Implement the concept of the unmapped VMIO buffers, i.e. buffers which 2013-03-19 14:13:12 +00:00
vnode_pager.c Assert that the object type for the vnode' non-NULL v_object, passed 2013-04-28 19:19:26 +00:00
vnode_pager.h Account the writeable shared mappings backed by file in the vnode 2012-02-23 21:07:16 +00:00