[PATCH] powerpc: Mark some variables in the page fault path __read_mostly
From: Anton Blanchard <hidden>
Date: 2010-01-12 10:50:14
Using perf to trace L1 dcache misses and dumping data addresses I found a few variables taking a lot of misses. Since they are almost never written, they should go into the __read_mostly section. Signed-off-by: Anton Blanchard <redacted> --- Index: linux-cpumask/arch/powerpc/xmon/xmon.c ===================================================================
--- linux-cpumask.orig/arch/powerpc/xmon/xmon.c 2010-01-12 14:40:35.436777033 +1100
+++ linux-cpumask/arch/powerpc/xmon/xmon.c 2010-01-12 14:41:30.576726874 +1100@@ -61,7 +61,7 @@ static int xmon_owner; static int xmon_gate; #endif /* CONFIG_SMP */ -static unsigned long in_xmon = 0; +static unsigned long in_xmon __read_mostly = 0; static unsigned long adrs; static int size = 1;
Index: linux-cpumask/arch/powerpc/kernel/traps.c ===================================================================
--- linux-cpumask.orig/arch/powerpc/kernel/traps.c 2010-01-12 14:40:29.614225983 +1100
+++ linux-cpumask/arch/powerpc/kernel/traps.c 2010-01-12 14:41:30.576726874 +1100@@ -60,13 +60,13 @@ #endif #if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC) -int (*__debugger)(struct pt_regs *regs); -int (*__debugger_ipi)(struct pt_regs *regs); -int (*__debugger_bpt)(struct pt_regs *regs); -int (*__debugger_sstep)(struct pt_regs *regs); -int (*__debugger_iabr_match)(struct pt_regs *regs); -int (*__debugger_dabr_match)(struct pt_regs *regs); -int (*__debugger_fault_handler)(struct pt_regs *regs); +int (*__debugger)(struct pt_regs *regs) __read_mostly; +int (*__debugger_ipi)(struct pt_regs *regs) __read_mostly; +int (*__debugger_bpt)(struct pt_regs *regs) __read_mostly; +int (*__debugger_sstep)(struct pt_regs *regs) __read_mostly; +int (*__debugger_iabr_match)(struct pt_regs *regs) __read_mostly; +int (*__debugger_dabr_match)(struct pt_regs *regs) __read_mostly; +int (*__debugger_fault_handler)(struct pt_regs *regs) __read_mostly; EXPORT_SYMBOL(__debugger); EXPORT_SYMBOL(__debugger_ipi);