2 CPUs, but only one is used

Giuliano Pochini pochini at shiny.it
Mon Dec 25 03:58:52 EST 2006


On Wed, 20 Dec 2006 08:16:55 -0600
Nathan Lynch <ntl at pobox.com> wrote:

> > > 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.



More information about the Linuxppc-dev mailing list