@@ -34,6 +34,10 @@ static void machine_none_init(MachineState *mch)
/* Initialize CPU (if user asked for it) */
if (mch->cpu_type) {
+ if (mch->smp.cpus > 1) {
+ error_report("Cannot initialize more than 1 CPU");
+ exit(1);
+ }
cpu = cpu_create(mch->cpu_type);
if (!cpu) {
error_report("Unable to initialize CPU");
@@ -79,7 +83,7 @@ static void machine_none_class_init(ObjectClass *oc, void *data)
mc->desc = "empty machine";
mc->init = machine_none_init;
- mc->max_cpus = 1;
+ mc->max_cpus = 16;
mc->default_ram_size = 0;
mc->default_ram_id = "ram";
mc->no_serial = 1;
In order to dynamically create (cold-plugging) cpus, we need to increase _maxcpus_. This value is indeed used to initialize the accelerator during qemu startup. Allowing 16 seems a good starting point. Add a check to prevent a user to request more than 1 cpu if he specifies the cpu type on the CLI so that the legacy use case of the none machine is preserved. This commit is needed to use the 'none' machine as a base, and subsequently to dynamically populate it wth cpus usign qapi commands. Signed-off-by: Damien Hedde <damien.hedde@greensocs.com> --- hw/core/null-machine.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)