CPU hotplug /sys entries are missing on 2.6.28

Giuliano Pochini pochini at shiny.it
Thu Feb 19 08:18:21 EST 2009


/sys/devices/system/cpu/cpu*/online don't exist anymore.

When the kernel is booted with maxcpus=1 /sys/devices/system/cpu/cpu1 is
also missing:

$ ls -la /sys/devices/system/cpu/
totale 0
drwxr-xr-x 3 root root    0  9 feb 23:15 .
drwxr-xr-x 7 root root    0  9 feb 23:15 ..
drwxr-xr-x 4 root root    0  9 feb 23:15 cpu0
-r--r--r-- 1 root root 4096  9 feb 23:15 online
-r--r--r-- 1 root root 4096  9 feb 23:15 possible
-r--r--r-- 1 root root 4096  9 feb 23:15 present
$ cat /sys/devices/system/cpu/online
0
$ cat /sys/devices/system/cpu/possible
0-1
$ cat /sys/devices/system/cpu/present
0-1
$ uname -a
Linux Jay 2.6.28 #1 SMP Sun Jan 11 22:42:31 CET 2009 ppc 7455, altivec supported PowerMac3,6 GNU/Linux


Looking at the 2.6.28 diff, i noticed there is a patch to
setup_32.c::ppc_init() that removes the following:

	for_each_possible_cpu(cpu) {
		struct cpu *c = &per_cpu(cpu_devices, cpu);
		c->hotpluggable = 1;
		register_cpu(c, cpu);
	}

Reverting it makes the kernel hang at boot.
The only other place where ->hotpluggable is set is in
sysfs.c::topology_init(), but it only happens if ppc_md.cpu_die!=NULL and I
couldn't find where that pointer is set. Any clue ?
TIA,


--
Giuliano.



More information about the Linuxppc-dev mailing list