Re: [patch] x86: Fix incorrect __read_mostly on _boot_cpu_pda

From: Mike Travis
Date: Wed Dec 31 2008 - 17:18:30 EST


Ravikiran G Thirumalai wrote:
> The pda rework (commit 3461b0af025251bbc6b3d56c821c6ac2de6f7209)
> to remove static boot cpu pdas introduced a 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@xxxxxxxxxxxx>
>
> Index: linux-2.6/arch/x86/kernel/head64.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/head64.c 2008-12-30 15:28:08.000000000 -0800
> +++ linux-2.6/arch/x86/kernel/head64.c 2008-12-31 10:36:21.000000000 -0800
> @@ -27,7 +27,7 @@
> #include <asm/trampoline.h>
>
> /* boot cpu pda */
> -static struct x8664_pda _boot_cpu_pda __read_mostly;
> +static struct x8664_pda _boot_cpu_pda;
>
> #ifdef CONFIG_SMP
> /*

Thanks for catching that!

Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/