Am 23.07.2012 12:47, schrieb [email protected]: > From: Dunrong Huang <[email protected]> > > The VCPU count limit in kernel now is 254, defined by KVM_MAX_VCPUS > in kernel's header files. But the count limit in QEMU is 255, > so QEMU will failed to start if user passes "-enable-kvm" and "-smp 255" > to it. > > This patch intruduces a Macro MAX_VCPUS whose value is KVM_MAX_VCPUS > if CONFIG_KVM is defined. If user do not use kvm, set it's value to 255. > > Signed-off-by: Dunrong Huang <[email protected]> > --- > hw/pc_piix.c | 28 +++++++++++++++++++--------- > 1 files changed, 19 insertions(+), 9 deletions(-) > > diff --git a/hw/pc_piix.c b/hw/pc_piix.c > index 0c0096f..49cda51 100644 > --- a/hw/pc_piix.c > +++ b/hw/pc_piix.c > @@ -49,6 +49,16 @@ > > #define MAX_IDE_BUS 2 > > +#ifndef KVM_MAX_VCPUS > +#define KVM_MAX_VCPUS 254 > +#endif > + > +#ifdef CONFIG_KVM > +#define MAX_VCPUS KVM_MAX_VCPUS > +#else > +#define MAX_VCPUS 255 > +#endif > + > static const int ide_iobase[MAX_IDE_BUS] = { 0x1f0, 0x170 }; > static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 }; > static const int ide_irq[MAX_IDE_BUS] = { 14, 15 }; > @@ -354,7 +364,7 @@ static QEMUMachine pc_machine_v1_2 = { > .alias = "pc", > .desc = "Standard PC", > .init = pc_init_pci, > - .max_cpus = 255, > + .max_cpus = MAX_VCPUS, > .is_default = 1, > }; > [snip]
This is not so ideal: -enable-kvm is a runtime switch whereas you are changing a compile-time limit here. Any chance to change the runtime usage of .max_cpus instead? Possibly introducing a helper function? Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
