Re: [PATCH V2] MIPS: CPU#0 is not hotpluggable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Greg,

On Sat, Jul 25, 2020 at 2:49 PM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Sat, Jul 25, 2020 at 02:37:52PM +0800, Huacai Chen wrote:
> > Hi, Thomas,
> >
> > What do you think about this patch? Other archs also do the same thing
> > except those support hotplug CPU#0.
> >
> > grep hotpluggable arch -rwI
> > arch/riscv/kernel/setup.c:        cpu->hotpluggable = cpu_has_hotplug(i);
> > arch/powerpc/kernel/sysfs.c:    BUG_ON(!c->hotpluggable);
> > arch/powerpc/kernel/sysfs.c:            c->hotpluggable = 1;
> > arch/powerpc/kernel/sysfs.c:        if (cpu_online(cpu) || c->hotpluggable) {
> > arch/arm/kernel/setup.c:        cpuinfo->cpu.hotpluggable =
> > platform_can_hotplug_cpu(cpu);
> > arch/sh/kernel/topology.c:        c->hotpluggable = 1;
> > arch/ia64/kernel/topology.c:     * CPEI target, then it is hotpluggable
> > arch/ia64/kernel/topology.c:        sysfs_cpus[num].cpu.hotpluggable = 1;
> > arch/xtensa/kernel/setup.c:        cpu->hotpluggable = !!i;
> > arch/s390/kernel/smp.c:    c->hotpluggable = 1;
> > arch/mips/kernel/topology.c:        c->hotpluggable = 1;
> > arch/arm64/kernel/cpuinfo.c: * In case the boot CPU is hotpluggable,
> > we record its initial state and
> > arch/arm64/kernel/setup.c:        cpu->hotpluggable = cpu_can_disable(i);
> > arch/x86/kernel/topology.c:        per_cpu(cpu_devices,
> > num).cpu.hotpluggable = 1;
> >
> > On Thu, Jul 16, 2020 at 6:38 PM Huacai Chen <chenhc@xxxxxxxxxx> wrote:
> > >
> > > Now CPU#0 is not hotpluggable on MIPS, so prevent to create /sys/devices
> > > /system/cpu/cpu0/online which confuses some user-space tools.
>
> What userspace tools are confused by this?  They should be able to
> handle a cpu not being able to be removed, right?
It causes ltp's "hotplug" test fails, and ltp considers CPUs with a
"online" node be hotpluggable.

>
>
> > >
> > > Cc: stable@xxxxxxxxxxxxxxx
> > > Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx>
> > > ---
> > >  arch/mips/kernel/topology.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/arch/mips/kernel/topology.c b/arch/mips/kernel/topology.c
> > > index cd3e1f8..08ad637 100644
> > > --- a/arch/mips/kernel/topology.c
> > > +++ b/arch/mips/kernel/topology.c
> > > @@ -20,7 +20,7 @@ static int __init topology_init(void)
> > >         for_each_present_cpu(i) {
> > >                 struct cpu *c = &per_cpu(cpu_devices, i);
> > >
> > > -               c->hotpluggable = 1;
> > > +               c->hotpluggable = !!i;
>
> Seems to be the same as what xtensa did, so it's probably not a big
> deal.
>
> thanks,
>
> greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux