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