Re: [tip:x86/apic] x86: Add NumaChip support

From: Ingo Molnar
Date: Fri Dec 09 2011 - 02:24:34 EST



* Kevin Winchester <kjwinchester@xxxxxxxxx> wrote:

> On 6 December 2011 01:50, Ingo Molnar <mingo@xxxxxxx> wrote:
> >
> > * Steffen Persvold <sp@xxxxxxxxxxxxx> wrote:
> >
> >> On 12/5/2011 21:31, Ingo Molnar wrote:
> >> []
> >> > There's a new build failure caused by this commit:
> >>
> >> It's this commit actually :
> >>
> >> Commit-ID: Â64be4c1c2428e148de6081af235e2418e6a66dda
> >> Gitweb: Â Â http://git.kernel.org/tip/64be4c1c2428e148de6081af235e2418e6a66dda
> >> Author: Â Â Daniel J Blueman <daniel@xxxxxxxxxxxxxxxxxx>
> >> AuthorDate: Mon, 5 Dec 2011 16:20:37 +0800
> >> Committer: ÂIngo Molnar <mingo@xxxxxxx>
> >> CommitDate: Mon, 5 Dec 2011 17:17:21 +0100
> >>
> >> x86: Add x86_init platform override to fix up NUMA core numbering
> >>
> >> >
> >> > Â arch/x86/kernel/cpu/common.c:1149:2: error: âstruct cpuinfo_x86â has no member named âphys_proc_idâ
> >> >
> >> > Note that the config is a !SMP one - that's probably the key
> >> > detail.
> >>
> >> Yes, phys_proc_id in struct cpuinfo_x86 is covered within "ifdef CONFIG_SMP".
> >>
> >> >
> >> > Please send a delta fix that resolves this bug. You can find the
> >> > current lineup in:
> >> >
> >> > Â Âgit://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
> >> >
> >>
> >> Will do, should be fairly simple. Something in the lines of the attached should work (tested).
> >>
> >> Note: I used "ifdef CONFIG_NUMA" simply because it doesn't make sense in a non-numa configuration even with SMP enabled. Besides, the only place where it is called right now is in kernel/cpu/amd.c:srat_detect_node() within the "CONFIG_NUMA" protected part.
> >>
> >> Cheers,
> >> --
> >> Steffen Persvold, Chief Architect NumaChip
> >> Numascale AS - www.numascale.com
> >> Tel: +47 92 49 25 54 Skype: spersvold
> >
> >> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> >> index ad4da45..a70bd5b 100644
> >> --- a/arch/x86/kernel/cpu/common.c
> >> +++ b/arch/x86/kernel/cpu/common.c
> >> @@ -1146,7 +1146,9 @@ static void dbg_restore_debug_regs(void)
> >> Â */
> >> Âvoid __cpuinit x86_default_fixup_cpu_id(struct cpuinfo_x86 *c, int node)
> >> Â{
> >> +#ifdef CONFIG_NUMA
> >> Â Â Â pr_err("NUMA core number %d differs from configured core number %d\n", node, c->phys_proc_id);
> >> +#endif
> >> Â}
> >
> > Yep, this should do the trick - i'll need a Signed-off-by line
> > to apply it.
> >
> > Ideally i think c->phys_proc_id should should be available
> > regardless of CONFIG_SMP or CONFIG_NUMA considerations - but
> > that would be a wider change. (feel free to have a shot at it
> > though, in addition to the fix above)
> >
>
> If Steffen does not plan to do this additional cleanup, I
> would give it a try. You would likely prefer the changes
> against -tip, correct?

On a second thought, the !SMP block in processor.h::cpuinfo_x86
is pretty self-contained and making it unconditional would
increase UP kernel size by 4x5==20 bytes.

I have not checked how many further simplifications this allows
- if it's a really nice cleanup then i guess we could do it and
keep the all-zeroes-and-ones default value on UP.

The fields *do* make sense on UP as well.

So it's a "try and see how it ends up" thing.

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/