svn commit: r218070 - head/sys/vm
Alan Cox
alc at FreeBSD.org
Sat Jan 29 15:23:03 UTC 2011
Author: alc
Date: Sat Jan 29 15:23:02 2011
New Revision: 218070
URL: http://svn.freebsd.org/changeset/base/218070
Log:
Reenable the call to vm_map_simplify_entry() from vm_map_insert() for non-
MAP_STACK_* entries. (See r71983 and r74235.)
In some cases, performing this call to vm_map_simplify_entry() halves the
number of vm map entries used by the Sun JDK.
Modified:
head/sys/vm/vm_map.c
Modified: head/sys/vm/vm_map.c
==============================================================================
--- head/sys/vm/vm_map.c Sat Jan 29 14:36:31 2011 (r218069)
+++ head/sys/vm/vm_map.c Sat Jan 29 15:23:02 2011 (r218070)
@@ -1293,17 +1293,13 @@ charged:
vm_map_entry_link(map, prev_entry, new_entry);
map->size += new_entry->end - new_entry->start;
-#if 0
/*
- * Temporarily removed to avoid MAP_STACK panic, due to
- * MAP_STACK being a huge hack. Will be added back in
- * when MAP_STACK (and the user stack mapping) is fixed.
+ * It may be possible to merge the new entry with the next and/or
+ * previous entries. However, due to MAP_STACK_* being a hack, a
+ * panic can result from merging such entries.
*/
- /*
- * It may be possible to simplify the entry
- */
- vm_map_simplify_entry(map, new_entry);
-#endif
+ if ((cow & (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP)) == 0)
+ vm_map_simplify_entry(map, new_entry);
if (cow & (MAP_PREFAULT|MAP_PREFAULT_PARTIAL)) {
vm_map_pmap_enter(map, start, prot,
More information about the svn-src-all
mailing list