Page MenuHomeFreeBSD

D19194.id53922.diff
No OneTemporary

D19194.id53922.diff

Index: head/sys/vm/vm_map.c
===================================================================
--- head/sys/vm/vm_map.c
+++ head/sys/vm/vm_map.c
@@ -1487,8 +1487,23 @@
static int cluster_anon = 1;
SYSCTL_INT(_vm, OID_AUTO, cluster_anon, CTLFLAG_RW,
&cluster_anon, 0,
- "Cluster anonymous mappings");
+ "Cluster anonymous mappings: 0 = no, 1 = yes if no hint, 2 = always");
+static bool
+clustering_anon_allowed(vm_offset_t addr)
+{
+
+ switch (cluster_anon) {
+ case 0:
+ return (false);
+ case 1:
+ return (addr == 0);
+ case 2:
+ default:
+ return (true);
+ }
+}
+
static long aslr_restarts;
SYSCTL_LONG(_vm, OID_AUTO, aslr_restarts, CTLFLAG_RD,
&aslr_restarts, 0,
@@ -1593,7 +1608,7 @@
} else
alignment = 0;
en_aslr = (map->flags & MAP_ASLR) != 0;
- update_anon = cluster = cluster_anon != 0 &&
+ update_anon = cluster = clustering_anon_allowed(*addr) &&
(map->flags & MAP_IS_SUB_MAP) == 0 && max_addr == 0 &&
find_space != VMFS_NO_SPACE && object == NULL &&
(cow & (MAP_INHERIT_SHARE | MAP_STACK_GROWS_UP |

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 22, 1:45 PM (21 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31982542
Default Alt Text
D19194.id53922.diff (1 KB)

Event Timeline