aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/sysv_shm.c
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2013-07-19 19:06:15 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2013-07-19 19:06:15 +0000
commitff74a3fa6badcb222caee2cc282943e6a8e7c30c (patch)
tree7777baf0c52b0b66567d2147e4ab8ed497fc8e3c /sys/kern/sysv_shm.c
parent748e404f265fbf5c868b090f03da1bae6bb12d4e (diff)
downloadsrc-ff74a3fa6badcb222caee2cc282943e6a8e7c30c.tar.gz
src-ff74a3fa6badcb222caee2cc282943e6a8e7c30c.zip
Be more aggressive in using superpages in all mappings of objects:
- Add a new address space allocation method (VMFS_OPTIMAL_SPACE) for vm_map_find() that will try to alter the alignment of a mapping to match any existing superpage mappings of the object being mapped. If no suitable address range is found with the necessary alignment, vm_map_find() will fall back to using the simple first-fit strategy (VMFS_ANY_SPACE). - Change mmap() without MAP_FIXED, shmat(), and the GEM mapping ioctl to use VMFS_OPTIMAL_SPACE instead of VMFS_ANY_SPACE. Reviewed by: alc (earlier version) MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=253471
Diffstat (limited to 'sys/kern/sysv_shm.c')
-rw-r--r--sys/kern/sysv_shm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index a1c6b34f03cb..90f5d7764fdc 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -414,7 +414,7 @@ kern_shmat(td, shmid, shmaddr, shmflg)
vm_object_reference(shmseg->object);
rv = vm_map_find(&p->p_vmspace->vm_map, shmseg->object,
0, &attach_va, size, (flags & MAP_FIXED) ? VMFS_NO_SPACE :
- VMFS_ANY_SPACE, prot, prot, MAP_INHERIT_SHARE);
+ VMFS_OPTIMAL_SPACE, prot, prot, MAP_INHERIT_SHARE);
if (rv != KERN_SUCCESS) {
vm_object_deallocate(shmseg->object);
error = ENOMEM;