freebsd-skq/sys/vm
Konstantin Belousov 0b367bd8c0 Adopt the deferring of object deallocation for the deleted map entries
on map unlock to the lock downgrade and later read unlock operation.

System map entries cannot be backed by OBJT_VNODE objects, no need to
defer deallocation for them. Map entries from user maps do not require
the owner map for deallocation, and can be accumulated in the
thread-local list for freeing when a user map is unlocked.

Move the collection of entries for deferred reclamation into
vm_map_delete(). Create helper vm_map_process_deferred(), that is
called from locations where processing is feasible. Do not process
deferred entries in vm_map_unlock_and_wait() since map_sleep_mtx is
held.

Reviewed by:	alc, rstone (previous versions)
Tested by:	pho
MFC after:	2 weeks
2010-09-18 15:03:31 +00:00
..
default_pager.c Implement global and per-uid accounting of the anonymous memory. Add 2009-06-23 20:45:22 +00:00
device_pager.c Add new make_dev_p(9) flag MAKEDEV_ETERNAL to inform devfs that created 2010-08-06 09:42:15 +00:00
memguard.c Have memguard(9) crash with an easier-to-debug message on double-free. 2010-08-31 17:43:47 +00:00
memguard.h The realloc case for memguard(9) will copy too many bytes when 2010-08-31 16:57:58 +00:00
phys_pager.c Handle busy status of the page in a way expected for pager_getpage(). 2010-05-03 19:19:58 +00:00
pmap.h Roughly half of a typical pmap_mincore() implementation is machine- 2010-05-24 14:26:57 +00:00
redzone.c Fix REDZONE(9) on amd64 and perhaps other 64 bit targets -- ensure the space 2008-08-13 17:32:48 +00:00
redzone.h
sg_pager.c Eliminate page queues locking around most calls to vm_page_free(). 2010-05-06 18:58:32 +00:00
swap_pager.c Call vm_page_deactivate() rather than vm_page_dontneed() in 2010-05-09 16:27:42 +00:00
swap_pager.h
uma_core.c Re-add r212370 now that the LOR in powerpc64 has been resolved: 2010-09-16 16:13:12 +00:00
uma_dbg.c - Make the keg abstraction more complete. Permit a zone to have multiple 2009-01-25 09:11:24 +00:00
uma_dbg.h
uma_int.h Add a new column to the output of vmstat -z to indicate the number 2010-06-15 19:28:37 +00:00
uma.h Add uma_zone_get_max() to obtain the effective limit after a call 2010-08-16 14:24:00 +00:00
vm_contig.c With the demise of page coloring, the page queue macros no longer serve any 2010-07-02 15:02:51 +00:00
vm_extern.h Rework memguard(9) to reserve significantly more KVA to detect 2010-08-11 22:10:37 +00:00
vm_fault.c Use vm_page_prev() instead of vm_page_lookup() in the implementation of 2010-07-02 19:59:18 +00:00
vm_glue.c Eliminate page queues locking around most calls to vm_page_free(). 2010-05-06 18:58:32 +00:00
vm_init.c Introduce exec_alloc_args(). The objective being to encapsulate the 2010-07-27 17:31:03 +00:00
vm_kern.c Rework memguard(9) to reserve significantly more KVA to detect 2010-08-11 22:10:37 +00:00
vm_kern.h Enable the creation of a kmem map larger than 4GB. 2008-07-05 19:34:33 +00:00
vm_map.c Adopt the deferring of object deallocation for the deleted map entries 2010-09-18 15:03:31 +00:00
vm_map.h Adopt the deferring of object deallocation for the deleted map entries 2010-09-18 15:03:31 +00:00
vm_meter.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_mmap.c Fix a typo in r212281. uintptr -> uintptr_t 2010-09-07 02:51:11 +00:00
vm_object.c Several cleanups for the r209686: 2010-07-04 19:02:32 +00:00
vm_object.h VI_OBJDIRTY vnode flag mirrors the state of OBJ_MIGHTBEDIRTY vm object 2009-12-21 12:29:38 +00:00
vm_page.c vm_page.c: include opt_msgbuf.h for MSGBUF_SIZE use in vm_page_startup 2010-09-03 10:40:53 +00:00
vm_page.h Redo the page table page allocation on MIPS, as suggested by 2010-07-21 09:27:00 +00:00
vm_pageout.c On architectures with non-tree-based page tables like PowerPC, every page 2010-09-09 13:32:58 +00:00
vm_pageout.h Make vm_contig_grow_cache() extern, and use it when vm_phys_alloc_contig() 2010-06-04 06:35:36 +00:00
vm_pager.c Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to 2009-07-24 13:50:29 +00:00
vm_pager.h Reimplement vm_object_page_clean(), using the fact that vm object memq 2010-07-04 11:26:56 +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 Re-add r212370 now that the LOR in powerpc64 has been resolved: 2010-09-16 16:13:12 +00:00
vm_phys.h Very rough first cut at NUMA support for the physical page allocator. For 2010-07-27 20:33:50 +00:00
vm_reserv.c Re-add r212370 now that the LOR in powerpc64 has been resolved: 2010-09-16 16:13:12 +00:00
vm_reserv.h Introduce vm_reserv_reclaim_contig(). This function is used by 2008-04-06 18:09:28 +00:00
vm_unix.c Remove execute permission from the memory allocated by sbrk(). 2009-04-11 22:34:08 +00:00
vm_zeroidle.c Split P_NOLOAD into a per-thread flag (TDF_NOLOAD). 2009-11-03 16:46:52 +00:00
vm.h Replace VM_PROT_OVERRIDE_WRITE by VM_PROT_COPY. VM_PROT_OVERRIDE_WRITE has 2009-11-26 05:16:07 +00:00
vnode_pager.c Minimize the use of the page queues lock for synchronizing access to the 2010-06-02 15:46:37 +00:00
vnode_pager.h Do not sleep for vnode lock while holding map lock in vm_fault. Try to 2009-02-08 20:23:46 +00:00