Re: [PATCH 2/2] x86: Move x86_cpu_to_apicid to the __read_mostlysection

From: Ingo Molnar
Date: Mon May 07 2012 - 10:07:50 EST



* Vlad Zolotarov <vlad@xxxxxxxxxxx> wrote:

> On Monday, May 07, 2012 01:52:47 pm Ingo Molnar wrote:
> > * Vlad Zolotarov <vlad@xxxxxxxxxxx> wrote:
> > > From: Shai Fultheim <shai@xxxxxxxxxxx>
> > >
> > > x86_cpu_to_apicid is only written to during initialization. Benchmarks
> > > show that moving it to the __read_mostly section helps avoid false
> > > sharing on large multiprocessing systems.
> > >
> > > Signed-off-by: Shai Fultheim <shai@xxxxxxxxxxx>
> > > Signed-off-by: Vlad Zolotarov <vlad@xxxxxxxxxxx>
> > > ---
> > >
> > > arch/x86/include/asm/smp.h | 2 +-
> > > 1 files changed, 1 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
> > > index 0434c40..b9d6c1e 100644
> > > --- a/arch/x86/include/asm/smp.h
> > > +++ b/arch/x86/include/asm/smp.h
> > > @@ -53,7 +53,7 @@ static inline struct cpumask *cpu_llc_shared_mask(int
> > > cpu)
> > >
> > > return per_cpu(cpu_llc_shared_map, cpu);
> > >
> > > }
> > >
> > > -DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid);
> > > +DECLARE_EARLY_PER_CPU_READ_MOSTLY(u16, x86_cpu_to_apicid);
> > >
> > > DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
> > > #if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32)
> > > DECLARE_EARLY_PER_CPU(int, x86_cpu_to_logical_apicid);
> >
> > Looks like all of the surrounding fields are read mostly as
> > well, only initialized very rarely, during cpu init?
>
> U r right. At least x86_bios_cpu_apicid is read mostly as
> well. I'll fix and respin.

Thanks.

> Did u have a chance to look at the other "__read_mostly" patch for fs/buffer.c
> I've sent?

Haven't been involved with fs/buffer.c for some time, please
send it to the relevant maintainer:

$ scripts/get_maintainer.pl -f fs/buffer.c
Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> (maintainer:FILESYSTEMS (VFS...)
linux-fsdevel@xxxxxxxxxxxxxxx (open list:FILESYSTEMS (VFS...)
linux-kernel@xxxxxxxxxxxxxxx (open list)

Thanks,

Ingo
--
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/