Re: /sys/devices/system/cpu/cpuX/online are missing

From: Russell King
Date: Tue Mar 13 2007 - 05:58:03 EST


On Tue, Mar 13, 2007 at 09:40:39AM +0000, Russell King wrote:
> On Tue, Mar 13, 2007 at 10:11:59AM +0100, Heiko Carstens wrote:
> > On Tue, Mar 13, 2007 at 10:03:50AM +0100, Heiko Carstens wrote:
> > > I was referring to arch/ppc not arch/powerpc. But it seems that arch/ppc
> > > doesn't support cpu hotplug anyway. So I guess it's indeed just a missing
> > > config option.
> > >
> > > Grepping a bit further shows that arm suffered by the change that inverted
> > > the logic if the 'online' attribute for cpus should appear. Since arm
> > > supports cpu hotplug but the patch left arm out, it doesn't work there
> > > anymore (cc'ing arm people: changeset 72486f1f8f0a2bc828b9d30cf4690cf2dd6807fc
> > > is most probably disabling cpu hotplug support on arm like it did on s390).
> >
> > Should have cc'ed Suresh Siddha who caused the breakage ;)
>
> Welcome to why cleanups are bad news. ;( Yes, ARM also needs to be fixed
> and I'd ask that in future people doing cleanups in core code take a little
> more time to review the code before submitting patches *AND* give heads-up
> to *EVERYONE* who might be affected by the change.

Right, here's the ARM fix which is now in the ARM tree:

# Base git commit: 8b9909ded6922c33c221b105b26917780cfa497d
# (Merge branch 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc)
#
# Author: Russell King (Tue Mar 13 09:54:21 GMT 2007)
# Committer: Russell King (Tue Mar 13 09:54:21 GMT 2007)
#
# [ARM] Fix breakage caused by 72486f1f8f0a2bc828b9d30cf4690cf2dd6807fc
#
# 72486f1f8f0a2bc828b9d30cf4690cf2dd6807fc inverted the sense for
# enabling hotplug CPU controls without reference to any other
# architecture other than i386, ia64 and PowerPC. This left
# everyone else without hotplug CPU control.
#
# Fix ARM for this brain damage.
#
# Signed-off-by: Russell King
#
# arch/arm/kernel/setup.c | 7 +++++--
# 1 files changed, 5 insertions(+), 2 deletions(-)
#
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 03e37af..0453dcc 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -839,8 +839,11 @@ static int __init topology_init(void)
{
int cpu;

- for_each_possible_cpu(cpu)
- register_cpu(&per_cpu(cpu_data, cpu).cpu, cpu);
+ for_each_possible_cpu(cpu) {
+ struct cpuinfo_arm *cpuinfo = &per_cpu(cpu_data, cpu);
+ cpuinfo->cpu.hotpluggable = 1;
+ register_cpu(&cpuinfo->cpu, cpu);
+ }

return 0;
}


--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
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/