* Jinyu Tang <tjytimi@xxxxxxx> wrote: > I run kernel by kvmtool but only one cpu can start in guset now, > because kvm use virt-ioapic and kvmtool set noapic cmdline for > x86 to disable ioapic route in kernel, and the latest cpu topo > code below makes cpu limitted just to one. > > For x86 kvm, noapic cmdline is reasonable, virt-ioapic don't > need to init hardware ioapic, so change it for x86 kvm guest to > avoid one num limit. > > Signed-off-by: Jinyu Tang <tjytimi@xxxxxxx> > --- > arch/x86/kernel/cpu/topology.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/cpu/topology.c b/arch/x86/kernel/cpu/topology.c > index 621a151ccf7d..a73847b1a841 100644 > --- a/arch/x86/kernel/cpu/topology.c > +++ b/arch/x86/kernel/cpu/topology.c > @@ -429,7 +429,9 @@ void __init topology_apply_cmdline_limits_early(void) > unsigned int possible = nr_cpu_ids; > > /* 'maxcpus=0' 'nosmp' 'nolapic' 'disableapic' 'noapic' */ > - if (!setup_max_cpus || ioapic_is_disabled || apic_is_disabled) > + if (!setup_max_cpus || > + (ioapic_is_disabled && (x86_hyper_type != X86_HYPER_KVM)) || > + apic_is_disabled) > possible = 1; > > /* 'possible_cpus=N' */ > @@ -443,8 +445,10 @@ void __init topology_apply_cmdline_limits_early(void) > > static __init bool restrict_to_up(void) > { > - if (!smp_found_config || ioapic_is_disabled) > + if (!smp_found_config || > + (ioapic_is_disabled && (x86_hyper_type != X86_HYPER_KVM))) > return true; > + > /* > * XEN PV is special as it does not advertise the local APIC > * properly, but provides a fake topology for it so that the Just to confirm that this bug got fixed, current kvmtool boots fine with multiple CPUs, correct? Thanks, Ingo