aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Lee Irwin III <wli@holomorphy.com>2007-07-21 11:11:13 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-21 21:37:12 -0400
commitc673f1a9d994de501b674b2bb6a48bd5e912afe0 (patch)
tree0657b02b263c24d91f4f6a82c841894bb17bcbb8
parent075bcd1f9726b8a1caff86eda06f29f71fb21235 (diff)
i386: divorce CONFIG_X86_PAE from CONFIG_HIGHMEM64G
PAE is useful for more than supporting more than 4GB RAM. It supports expanded swapspace and NX executable protections. Some users may want NX or expanded swapspace support without the overhead or instability of highmem. For these reasons, the following patch divorces CONFIG_X86_PAE from CONFIG_HIGHMEM64G. Cc: Mark Lord <lkml@rtr.ca> Signed-off-by: William Irwin <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/i386/Kconfig16
-rw-r--r--arch/i386/kernel/setup.c8
2 files changed, 15 insertions, 9 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index 361aca8b3ec3..0790bdf8c1f1 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -548,6 +548,7 @@ config HIGHMEM4G
548config HIGHMEM64G 548config HIGHMEM64G
549 bool "64GB" 549 bool "64GB"
550 depends on !M386 && !M486 550 depends on !M386 && !M486
551 select X86_PAE
551 help 552 help
552 Select this if you have a 32-bit processor and more than 4 553 Select this if you have a 32-bit processor and more than 4
553 gigabytes of physical RAM. 554 gigabytes of physical RAM.
@@ -577,12 +578,12 @@ choice
577 config VMSPLIT_3G 578 config VMSPLIT_3G
578 bool "3G/1G user/kernel split" 579 bool "3G/1G user/kernel split"
579 config VMSPLIT_3G_OPT 580 config VMSPLIT_3G_OPT
580 depends on !HIGHMEM 581 depends on !X86_PAE
581 bool "3G/1G user/kernel split (for full 1G low memory)" 582 bool "3G/1G user/kernel split (for full 1G low memory)"
582 config VMSPLIT_2G 583 config VMSPLIT_2G
583 bool "2G/2G user/kernel split" 584 bool "2G/2G user/kernel split"
584 config VMSPLIT_2G_OPT 585 config VMSPLIT_2G_OPT
585 depends on !HIGHMEM 586 depends on !X86_PAE
586 bool "2G/2G user/kernel split (for full 2G low memory)" 587 bool "2G/2G user/kernel split (for full 2G low memory)"
587 config VMSPLIT_1G 588 config VMSPLIT_1G
588 bool "1G/3G user/kernel split" 589 bool "1G/3G user/kernel split"
@@ -602,10 +603,15 @@ config HIGHMEM
602 default y 603 default y
603 604
604config X86_PAE 605config X86_PAE
605 bool 606 bool "PAE (Physical Address Extension) Support"
606 depends on HIGHMEM64G 607 default n
607 default y 608 depends on !HIGHMEM4G
608 select RESOURCES_64BIT 609 select RESOURCES_64BIT
610 help
611 PAE is required for NX support, and furthermore enables
612 larger swapspace support for non-overcommit purposes. It
613 has the cost of more pagetable lookup overhead, and also
614 consumes more pagetable space per process.
609 615
610# Common NUMA Features 616# Common NUMA Features
611config NUMA 617config NUMA
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
index 2986b48a823f..d474cd639bcb 100644
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -273,18 +273,18 @@ unsigned long __init find_max_low_pfn(void)
273 printk(KERN_WARNING "Warning only %ldMB will be used.\n", 273 printk(KERN_WARNING "Warning only %ldMB will be used.\n",
274 MAXMEM>>20); 274 MAXMEM>>20);
275 if (max_pfn > MAX_NONPAE_PFN) 275 if (max_pfn > MAX_NONPAE_PFN)
276 printk(KERN_WARNING "Use a PAE enabled kernel.\n"); 276 printk(KERN_WARNING "Use a HIGHMEM64G enabled kernel.\n");
277 else 277 else
278 printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n"); 278 printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n");
279 max_pfn = MAXMEM_PFN; 279 max_pfn = MAXMEM_PFN;
280#else /* !CONFIG_HIGHMEM */ 280#else /* !CONFIG_HIGHMEM */
281#ifndef CONFIG_X86_PAE 281#ifndef CONFIG_HIGHMEM64G
282 if (max_pfn > MAX_NONPAE_PFN) { 282 if (max_pfn > MAX_NONPAE_PFN) {
283 max_pfn = MAX_NONPAE_PFN; 283 max_pfn = MAX_NONPAE_PFN;
284 printk(KERN_WARNING "Warning only 4GB will be used.\n"); 284 printk(KERN_WARNING "Warning only 4GB will be used.\n");
285 printk(KERN_WARNING "Use a PAE enabled kernel.\n"); 285 printk(KERN_WARNING "Use a HIGHMEM64G enabled kernel.\n");
286 } 286 }
287#endif /* !CONFIG_X86_PAE */ 287#endif /* !CONFIG_HIGHMEM64G */
288#endif /* !CONFIG_HIGHMEM */ 288#endif /* !CONFIG_HIGHMEM */
289 } else { 289 } else {
290 if (highmem_pages == -1) 290 if (highmem_pages == -1)