Re: [Bug #13116] Can't boot with nosmp

Avi Kivity
2009-06-09T18:31:15Z

Dan Williams wrote:
> On Mon, Jun 8, 2009 at 5:04 PM, Stephen Hemminger<shemminger@vyatta.com> wrote:
>
>> I did some more debugging, and the problem appears to be that
>> booting with nosmp still leaves all the CPU's present in the cpu
>> possible mask. So code like dma engine (or loopback device), that
>> use alloc_percpu get broken.
>>
>> Not sure why all the cpu's are still showing up in the possible mask.
>> Rusty? do you have an answer.
>>
>
> Would this recent commit also fix this issue?
>
> commit a4c0364be3f43d3e17fe19270f8b3d64881606e6
> Author: Avi Kivity <avi@redhat.com>
> Date: Sat Jun 6 12:34:39 2009 +0300
>
> KVM: Explicity initialize cpus_hardware_enabled
>
> Under CONFIG_MAXSMP, cpus_hardware_enabled is allocated from the heap and
> not statically initialized. This causes a crash on reboot when kvm thinks
> vmx is enabled on random nonexistent cpus and accesses nonexistent percpu
> lists.
>
> Fix by explicitly clearing the variable.
>
> Cc: stable@kernel.org
> Reported-and-tested-by: Yinghai Lu <yinghai@kernel.org>
> Signed-off-by: Avi Kivity <avi@redhat.com>
>

This only affects reboots. But yes, the cpumask code has bugs. Does
the .config involved select MAXSMP?

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.