| Date | Thu, 15 Jan 2009 11:57:48 -0800 | From | Greg KH <> | Subject | [patch 16/94] x86: fix incorrect __read_mostly on _boot_cpu_pda |
| |
2.6.28-stable review patch. If anyone has any objections, please let us know.
------------------
From: Ravikiran G Thirumalai <kiran@scalex86.org>
commit 26799a63110dcbe81291ea53178f6b4810d07424 upstream.
The pda rework (commit 3461b0af025251bbc6b3d56c821c6ac2de6f7209) to remove static boot cpu pdas introduced a performance bug.
_boot_cpu_pda is the actual pda used by the boot cpu and is definitely not "__read_mostly" and ended up polluting the read mostly section with writes. This bug caused regression of about 8-10% on certain syscall intensive workloads.
Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> Acked-by: Mike Travis <travis@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- arch/x86/kernel/head64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -26,7 +26,7 @@ #include <asm/bios_ebda.h> /* boot cpu pda */ -static struct x8664_pda _boot_cpu_pda __read_mostly; +static struct x8664_pda _boot_cpu_pda; #ifdef CONFIG_SMP /*
|