RE: [PATCH 8/8] kernel/cpu.c: Define bsp_hotpluggable variable

From: Thomas Gleixner
Date: Wed Oct 05 2011 - 17:19:44 EST


On Wed, 5 Oct 2011, Yu, Fenghua wrote:

> > -----Original Message-----
> > From: Thomas Gleixner [mailto:tglx@xxxxxxxxxxxxx]
> > Sent: Wednesday, October 05, 2011 12:25 PM
> > To: Yu, Fenghua
> > Cc: Ingo Molnar; H Peter Anvin; Zwane Mwaikambo; Luck, Tony; Mallick,
> > Asit K; Siddha, Suresh B; Len Brown; linux-kernel
> > Subject: Re: [PATCH 8/8] kernel/cpu.c: Define bsp_hotpluggable variable
> >
> > On Wed, 5 Oct 2011, Fenghua Yu wrote:
> >
> > > From: Fenghua Yu <fenghua.yu@xxxxxxxxx>
> > >
> > > This gloable variable controls BSP (aka CPU0) hotplug. If set, BSP is
> > > hotpluggable. By default, it's 0. On X86, kernel option
> > bsp_hotpluggable sets
> > > the variable as 1.
> >
> > .... and on !x86 its just pointless.
>
> I'll change the variable to an inline function which returns bsp_hotpluggable on x86 and is empty function on !x86.
>

Can you finally fix your mail client, please ? It want's to look like
this:

> I'll change the variable to an inline function which returns
> bsp_hotpluggable on x86 and is empty function on !x86.

No, that's wrong again. This needs to be in the arch function not in
some random sysfs file op. Someone else pointed it out to you already,
that it's racy as well.

> >
> > I have yet to see a justification for that whole cpu0 unplugging
> > business.
> >
> > If there is a real reason that this is desireable, then ALL cpu0
> > assumptions in arch/x86 need to be cleaned up and fixed.
>
> I can think of two reasons for bsp offline/online:
>
> 1. RAS needs the feature. If socket0 needs to be hotplugged for any
> reason (any thread on socket0 is bad, shared cache issue, uncore
> issue, etc), CPU0 is required to be offlined.

That sounds like a reasonable requirement, which should have been
mentioned in the 0/N mail to a patch series to avoid such questions.

> 2. CPU0 is symmetrical to other CPU's. There is no specific reason
> why it shouldn't be offlined except BIOS requirements.

That's not a reason at all. And "except BIOS requirements" might be
actually a reason NOT to do that.

Though as this needs to be runtime enabled, I have no general
objections against doing it, but it has to be done right.

To do that proper, it needs

- to fixup _ALL_ cpu 0 assumptions in arch/x86 and not just hacking
around some of them

- a proper mechanism to deal with hardware which cannot handle it
(i.e. no IOAPIC .....)

- proper fixups for set up but unused irqs like irq0

- ....

Thanks,

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