freebsd-nq/sys/vm
Alan Cox d0a83a83bf In order to map device memory using superpages, mmap(2) must find a
superpage-aligned virtual address for the mapping.  Revision 1.65
implemented an overly simplistic and generally ineffectual method for
finding a superpage-aligned virtual address.  Specifically, it rounds
the virtual address corresponding to the end of the data segment up to
the next superpage-aligned virtual address.  If this virtual address
is unallocated, then the device will be mapped using superpages.
Unfortunately, in modern times, where applications like the X server
dynamically load much of their code, this virtual address is already
allocated.  In such cases, mmap(2) simply uses the first available
virtual address, which is not necessarily superpage aligned.

This revision changes mmap(2) to use a more robust method,
specifically, the VMFS_ALIGNED_SPACE option that is now implemented by
vm_map_find().
2008-05-17 19:32:48 +00:00
..
default_pager.c
device_pager.c Preset a device object's alignment ("pg_color") based upon the 2008-05-17 16:26:34 +00:00
memguard.c Provide the new argument to kmem_suballoc(). 2008-05-10 23:39:27 +00:00
memguard.h Improve memguard a bit: 2005-12-30 11:45:07 +00:00
phys_pager.c Correct a copy and paste'o in phys_pager.c, we are talking about phys here 2007-10-30 14:48:13 +00:00
pmap.h Introduce pmap_align_superpage(). It increases the starting virtual 2008-05-09 16:48:07 +00:00
redzone.c Modify stack(9) stack_print() and stack_sbuf_print() routines to use new 2007-12-01 22:04:16 +00:00
redzone.h Add buffer corruption protection (RedZone) for kernel's malloc(9). 2006-01-31 11:09:21 +00:00
swap_pager.c add malloc flag to blist so that it can be used in ithread context 2008-05-05 19:48:54 +00:00
swap_pager.h - Move 'struct swdevt' back into swap_pager.h and expose it to userland. 2007-02-07 17:43:11 +00:00
uma_core.c Reintroduce UMA_SLAB_KMAP; however, change its spelling to 2008-04-04 18:41:12 +00:00
uma_dbg.c Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma_dbg.h Improve canonicalization of copyrights. Order copyrights by order of 2005-07-16 09:51:52 +00:00
uma_int.h Update stale comment on protecting UMA per-CPU caches: we now use 2007-05-09 22:53:34 +00:00
uma.h Reintroduce UMA_SLAB_KMAP; however, change its spelling to 2008-04-04 18:41:12 +00:00
vm_contig.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
vm_extern.h Introduce a new parameter "superpage_align" to kmem_suballoc() that is 2008-05-10 21:46:20 +00:00
vm_fault.c Simplify the inner loop of vm_fault()'s delete-behind heuristic. 2008-03-16 17:37:19 +00:00
vm_glue.c - Make SCHED_STATS more generic by adding a wrapper to create the 2008-04-17 04:20:10 +00:00
vm_init.c Introduce a new parameter "superpage_align" to kmem_suballoc() that is 2008-05-10 21:46:20 +00:00
vm_kern.c Introduce a new parameter "superpage_align" to kmem_suballoc() that is 2008-05-10 21:46:20 +00:00
vm_kern.h The clean_map has been made local to vm_init.c long ago. 2006-11-20 16:23:34 +00:00
vm_map.c Generalize vm_map_find(9)'s parameter "find_space". Specifically, add 2008-05-10 18:55:35 +00:00
vm_map.h Generalize vm_map_find(9)'s parameter "find_space". Specifically, add 2008-05-10 18:55:35 +00:00
vm_meter.c - Relax requirements for p_numthreads, p_threads, p_swtick, and p_nice from 2008-03-19 06:19:01 +00:00
vm_mmap.c In order to map device memory using superpages, mmap(2) must find a 2008-05-17 19:32:48 +00:00
vm_object.c - Use vm_object_reference_locked() directly from 2008-03-29 07:06:13 +00:00
vm_object.h Add a list of reservations to the vm object structure. 2007-12-27 17:56:35 +00:00
vm_page.c Don't call vm_reserv_alloc_page() on device-backed objects. Otherwise, the 2008-05-15 18:52:31 +00:00
vm_page.h Rename vm_pageq_requeue() to vm_page_requeue() on account of its recent 2008-03-19 20:24:35 +00:00
vm_pageout.c Rename vm_pageq_requeue() to vm_page_requeue() on account of its recent 2008-03-19 20:24:35 +00:00
vm_pageout.h Make contigmalloc(9)'s page laundering more robust. Specifically, use 2007-11-25 20:37:29 +00:00
vm_pager.c Consider a scenario in which one processor, call it Pt, is performing 2007-08-05 21:04:32 +00:00
vm_pager.h
vm_param.h Fix CTL_VM_NAMES. 2007-10-16 11:32:57 +00:00
vm_phys.c Introduce vm_reserv_reclaim_contig(). This function is used by 2008-04-06 18:09:28 +00:00
vm_phys.h Modify vm_phys_unfree_page() so that it no longer requires the given 2007-12-20 22:45:54 +00:00
vm_reserv.c Introduce vm_reserv_reclaim_contig(). This function is used by 2008-04-06 18:09:28 +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 /* -> /*- for license, minor formatting changes 2005-01-07 02:29:27 +00:00
vm_zeroidle.c - Make SCHED_STATS more generic by adding a wrapper to create the 2008-04-17 04:20:10 +00:00
vm.h Add the superpage reservation type. 2007-12-27 17:08:11 +00:00
vnode_pager.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
vnode_pager.h Move the body of vop_stdcreatevobject() over to the vnode_pager under 2005-01-24 21:21:59 +00:00