freebsd-dev/sys/vm
Konstantin Belousov 56bdf2dbc2 Since r218070 reenabled the call to vm_map_simplify_entry() from
vm_map_insert(), the kmem_back() assumption about newly inserted
entry might be broken due to interference of two factors. In the low
memory condition, when vm_page_alloc() returns NULL, supplied map is
unlocked. If another thread performs kmem_malloc() meantime, and its
map entry is placed right next to our thread map entry in the map,
both entries wire count is still 0 and entries are coalesced due to
vm_map_simplify_entry().

Mark new entry with MAP_ENTRY_IN_TRANSITION to prevent coalesce.
Fix some style issues, tighten the assertions to account for
MAP_ENTRY_IN_TRANSITION state.

Reported and tested by:	pho
Reviewed by:	alc
2011-02-15 09:03:58 +00:00
..
default_pager.c Replace pointer to "struct uidinfo" with pointer to "struct ucred" 2010-12-02 17:37:16 +00:00
device_pager.c Explicitly initialize the page's queue field to PQ_NONE instead of relying 2011-01-17 19:17:26 +00:00
memguard.c Change memguard_fudge() so that it can handle km_max being zero. Not 2010-12-14 05:47:35 +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 Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
pmap.h Sort function prototypes. 2011-01-16 20:40:50 +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 Explicitly initialize the page's queue field to PQ_NONE instead of relying 2011-01-17 19:17:26 +00:00
swap_pager.c Move the definition of M_VMPGDATA to the swap pager, where the only 2011-01-18 04:54:43 +00:00
swap_pager.h
uma_core.c Explicitly wire the user buffer rather than doing it implicitly in 2011-01-27 00:34: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 Change uma_zone_set_max to return the effective value of "nitems" after 2010-10-16 04:41:45 +00:00
vm_contig.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
vm_extern.h Move vm_object_print()'s prototype to the expected place. 2010-12-27 07:12:22 +00:00
vm_fault.c For some time now, the kernel and kmem objects have been ordinary 2011-01-15 19:21:28 +00:00
vm_glue.c Move repeated MAXSLP definition from machine/vmparam.h to sys/vmmeter.h. 2011-01-09 12:50:44 +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 Since r218070 reenabled the call to vm_map_simplify_entry() from 2011-02-15 09:03:58 +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 Since the last parameter to vm_object_shadow() is a vm_size_t and not a 2011-02-04 21:49:24 +00:00
vm_map.h Introduce vm_fault_hold() and use it to (1) eliminate a long-standing race 2010-12-20 22:49:31 +00:00
vm_meter.c Use CPU_FOREACH rather than expecting CPUs 0 through mp_ncpus-1 to be present. 2011-02-12 02:10:08 +00:00
vm_mmap.c Fix comment intentation. 2010-12-04 17:41:58 +00:00
vm_object.c Lock the vnode around clearing of VV_TEXT flag. Remove mp_fixme() note 2011-02-13 21:52:26 +00:00
vm_object.h Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
vm_page.c Retire VFS_BIO_DEBUG. Convert those checks that were still valid into 2011-02-12 01:00:00 +00:00
vm_page.h Explicitly initialize the page's queue field to PQ_NONE instead of relying 2011-01-17 19:17:26 +00:00
vm_pageout.c Shift responsibility for synchronizing access to the page's act_count 2011-01-16 18:01:39 +00:00
vm_pageout.h vm_pageout_flush() might cache the pages that finished write to the 2010-11-18 21:09:02 +00:00
vm_pager.c Move the definition of M_VMPGDATA to the swap pager, where the only 2011-01-18 04:54:43 +00:00
vm_pager.h Move the definition of M_VMPGDATA to the swap pager, where the only 2011-01-18 04:54:43 +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 Explicitly wire the user buffer rather than doing it implicitly in 2011-01-27 00:34: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 Explicitly wire the user buffer rather than doing it implicitly in 2011-01-27 00:34: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 pointer to "struct uidinfo" with pointer to "struct ucred" 2010-12-02 17:37:16 +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