x86: fix incorrect __read_mostly on _boot_cpu_pda

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>
Cc: <stable@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by

Ravikiran G Thirumalai and committed by
Ingo Molnar
26799a63 b58602a4

+1 -1
+1 -1
arch/x86/kernel/head64.c
··· 27 27 #include <asm/trampoline.h> 28 28 29 29 /* boot cpu pda */ 30 - static struct x8664_pda _boot_cpu_pda __read_mostly; 30 + static struct x8664_pda _boot_cpu_pda; 31 31 32 32 #ifdef CONFIG_SMP 33 33 /*