[IA64] Set default page size to 64k

From: Christoph Lameter <clameter_at_sgi.com>
Date: 2007-06-08 11:05:46
It seems that 16k page size causes Itanium processors to have significant
TLB overhead when the working set is growing beyond 2M. Setting the
page size to 64k reduces this problem.

See the paper of the researchers at the TU Dresden on TLB issues:
http://www.cs.utah.edu/wmpi/2006/final-version/wmpi-posters-3-Juckeland.pdf
and my presentation
http://ftp.kernel.org/pub/linux/kernel/people/christoph/gelato/gelato2007-tlb-tricks.pdf.

SLUB can also take advantage of the larger page sizes. A kernel compile is 
already ~5-10% faster with 16k. This will increase the speed even more. It 
will also increase the effectiveness of slab reclaim because more objects 
can be processed with a single acquisition of the dcache or inode lock.

We at SGI have begun to see livelocks because of too much activity on various
locks. This is simply because there are too many pages in the system which
require frequent taking of locks. Going to 64k page size will reduce the frequency
of taking locks by a factor of 4.

IA64 systems typically have very large memory capacities. Going to 64k will increase
the memory footprint but I think we are willling to make that sacrifice for the
speed the larger page size brings us.

Signed-off-by: Christoph Lameter <clameter@sgi.com>

Index: slub/arch/ia64/Kconfig
===================================================================
--- slub.orig/arch/ia64/Kconfig	2007-05-31 11:44:50.000000000 -0700
+++ slub/arch/ia64/Kconfig	2007-06-07 17:39:02.000000000 -0700
@@ -168,7 +168,7 @@ endchoice
 
 choice
 	prompt "Kernel page size"
-	default IA64_PAGE_SIZE_16KB
+	default IA64_PAGE_SIZE_64KB
 
 config IA64_PAGE_SIZE_4KB
 	bool "4KB"
Index: slub/arch/ia64/configs/sn2_defconfig
===================================================================
--- slub.orig/arch/ia64/configs/sn2_defconfig	2007-06-07 17:41:22.000000000 -0700
+++ slub/arch/ia64/configs/sn2_defconfig	2007-06-07 17:56:34.000000000 -0700
@@ -110,8 +110,8 @@ CONFIG_IA64_SGI_SN2=y
 CONFIG_MCKINLEY=y
 # CONFIG_IA64_PAGE_SIZE_4KB is not set
 # CONFIG_IA64_PAGE_SIZE_8KB is not set
-CONFIG_IA64_PAGE_SIZE_16KB=y
-# CONFIG_IA64_PAGE_SIZE_64KB is not set
+# CONFIG_IA64_PAGE_SIZE_16KB is not set
+CONFIG_IA64_PAGE_SIZE_64KB=y
 # CONFIG_PGTABLE_3 is not set
 CONFIG_PGTABLE_4=y
 # CONFIG_HZ_100 is not set
Index: slub/arch/ia64/configs/gensparse_defconfig
===================================================================
--- slub.orig/arch/ia64/configs/gensparse_defconfig	2007-06-07 17:56:54.000000000 -0700
+++ slub/arch/ia64/configs/gensparse_defconfig	2007-06-07 17:57:24.000000000 -0700
@@ -101,8 +101,8 @@ CONFIG_IA64_GENERIC=y
 CONFIG_MCKINLEY=y
 # CONFIG_IA64_PAGE_SIZE_4KB is not set
 # CONFIG_IA64_PAGE_SIZE_8KB is not set
-CONFIG_IA64_PAGE_SIZE_16KB=y
-# CONFIG_IA64_PAGE_SIZE_64KB is not set
+# CONFIG_IA64_PAGE_SIZE_16KB is not set
+CONFIG_IA64_PAGE_SIZE_64KB=y
 CONFIG_PGTABLE_3=y
 # CONFIG_PGTABLE_4 is not set
 # CONFIG_HZ_100 is not set
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Fri Jun 08 11:05:56 2007

This archive was generated by hypermail 2.1.8 : 2007-06-08 11:06:08 EST