Re: 2 CPUs, but only one is used
From: Giuliano Pochini <hidden>
Date: 2006-12-24 16:26:32
On Wed, 20 Dec 2006 08:16:55 -0600 Nathan Lynch [off-list ref] wrote:
quoted
quoted
I have a dual G4 MDD mac running linux 2.6.19. When I boot with maxcpus=1 and then I issue "echo 1 >/sys/devices/system/cpu/cpu1/online" the second CPU is put online without errors, but it stays idle+wait=100% and of course user+system+nice=0%. It works fine without maxcpus=1. No problems with 2.6.18. I saw that there are some cpu hotplug related changes in 2.6.19, but I have no access to a non-ppc dual cpu box to check if the problem also affects other architectures right now.I tried to reproduce the problem on an intel box, but I couldn't. /sys contains only the cpu0 file if it boots with maxcpus=1.Can you try to git bisect to find the change which caused the regression?
I finally have some time to spend on this issue. At the end of kernel/cpu.c::cpu_up() both cpus are set as present, possible and online. The problem is that in kernel/sched.c::find_idlest_group() p->cpus_allowed is always 1 (it should be 3). I tried to put a dump_stack() or a printk(mask) in set_cpu_mask() but it crashes badly when mask is not 3, ie. anything different from khelper or kthread, so I couldn't know what sets the wrong cpumask. -- Giuliano.