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-head mailing list