freebsd-skq/sys/vm
Alan Cox f8616ebfae If vm_map_find() is asked to allocate a superpage-aligned region of virtual
addresses that is greater than a superpage in size but not a multiple of
the superpage size, then vm_map_find() is not always expanding the kernel
pmap to support the last few small pages being allocated.  These failures
are not commonplace, so this was first noticed by someone porting FreeBSD
to a new architecture.  Previously, we grew the kernel page table in
vm_map_findspace() when we found the first available virtual address.
This works most of the time because we always grow the kernel pmap or page
table by an amount that is a multiple of the superpage size.  Now, instead,
we defer the call to pmap_growkernel() until we are committed to a range
of virtual addresses in vm_map_insert().  In general, there is another
reason to prefer calling pmap_growkernel() in vm_map_insert().  It makes
it possible for someone to do the equivalent of an mmap(MAP_FIXED) on the
kernel map.

Reported by:	Svatopluk Kraus
Reviewed by:	kib@
MFC after:	3 weeks
2010-10-04 16:49:40 +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
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 Replace an XXX comment with the appropriate code. 2010-09-20 20:41:59 +00:00
vm_kern.h
vm_map.c If vm_map_find() is asked to allocate a superpage-aligned region of virtual 2010-10-04 16:49:40 +00:00
vm_map.h Make refinements to r212824. In particular, don't make 2010-09-19 17:43:22 +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 Allow a POSIX shared memory object that is opened for read but not for 2010-09-19 19:42:04 +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
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