Set PIE address range to avoid or minimize mmap pressure due to limited
authorkurt <kurt@openbsd.org>
Fri, 22 Aug 2008 10:41:37 +0000 (10:41 +0000)
committerkurt <kurt@openbsd.org>
Fri, 22 Aug 2008 10:41:37 +0000 (10:41 +0000)
address space. The space between PAGE_SIZE and the non-pie fixed link
address creates no mmap pressure so use that space for PIE. However on
hppa the non-pie fixed link address is PAGE_SIZE so just use a small range
for PIE to minimize mmap pressure.

okay miod@

sys/arch/hppa/include/vmparam.h
sys/arch/mips64/include/vmparam.h
sys/arch/sh/include/vmparam.h

index 6e36570..6519c86 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmparam.h,v 1.33 2006/06/04 17:21:24 miod Exp $       */
+/*     $OpenBSD: vmparam.h,v 1.34 2008/08/22 10:41:37 kurt Exp $       */
 
 /* 
  * Copyright (c) 1988-1994, The University of Utah and
 #define        VM_MIN_KERNEL_ADDRESS   ((vaddr_t)0xc0001000)
 #define        VM_MAX_KERNEL_ADDRESS   ((vaddr_t)0xef000000)
 
+/* use a small range for PIE to minimize mmap pressure */
+#define        VM_PIE_MIN_ADDR         PAGE_SIZE
+#define        VM_PIE_MAX_ADDR         0x40000UL
+
 /* virtual sizes (bytes) for various kernel submaps */
 #define VM_PHYS_SIZE           (USRIOSIZE*PAGE_SIZE)
 
index 354421b..17f7573 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmparam.h,v 1.15 2008/07/25 21:25:25 miod Exp $       */
+/*     $OpenBSD: vmparam.h,v 1.16 2008/08/22 10:41:37 kurt Exp $       */
 /*     $NetBSD: vmparam.h,v 1.5 1994/10/26 21:10:10 cgd Exp $  */
 
 /*
 #define VM_MIN_KERNEL_ADDRESS  ((vaddr_t)0xffffffffc0000000L)
 #define        VM_MAX_KERNEL_ADDRESS   ((vaddr_t)0xfffffffffffff000L)
 
+/* map PIE below 256MB (non-pie link address) to avoid mmap pressure */
+#define VM_PIE_MIN_ADDR                PAGE_SIZE
+#define VM_PIE_MAX_ADDR                0x10000000UL
+
 #ifndef VM_NFREELIST
 #define        VM_NFREELIST            1
 #endif
index 5934b9e..bdc7fa5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: vmparam.h,v 1.6 2008/06/26 05:42:13 ray Exp $ */
+/*     $OpenBSD: vmparam.h,v 1.7 2008/08/22 10:41:37 kurt Exp $        */
 /*     $NetBSD: vmparam.h,v 1.17 2006/03/04 01:55:03 uwe Exp $ */
 
 /*-
 #define        VM_MIN_KERNEL_ADDRESS   ((vaddr_t)0xc0000000)
 #define        VM_MAX_KERNEL_ADDRESS   ((vaddr_t)0xe0000000)
 
+/* map PIE below 4MB (non-pie link address) to avoid mmap pressure */
+#define VM_PIE_MIN_ADDR                PAGE_SIZE
+#define VM_PIE_MAX_ADDR                0x400000UL
+
 /* top of stack */
 #define        USRSTACK                VM_MAXUSER_ADDRESS