Thread (7 messages) flat view 7 messages, 5 authors, 2007-03-14

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

From: Russell King <hidden>
Date: 2007-03-13 09:57:38
Also in: lkml
Subsystem: arm port, the rest · Maintainers: Russell King, Linus Torvalds

Possibly related (same subject, not in this thread)

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:
quoted
On Tue, Mar 13, 2007 at 10:03:50AM +0100, Heiko Carstens wrote:
quoted
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:
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help