char *name;
char *alias;
unsigned int maxCpus;
+ bool hotplugCpus;
};
/*
* Update the XML parser/formatter when adding more
}
/* When parsing from command line we don't have information about maxCpus */
qemuCaps->machineTypes[qemuCaps->nmachineTypes-1].maxCpus = 0;
+ qemuCaps->machineTypes[qemuCaps->nmachineTypes-1].hotplugCpus = false;
} while ((p = next));
VIR_STRDUP(ret->machineTypes[i].alias, qemuCaps->machineTypes[i].alias) < 0)
goto error;
ret->machineTypes[i].maxCpus = qemuCaps->machineTypes[i].maxCpus;
+ ret->machineTypes[i].hotplugCpus = qemuCaps->machineTypes[i].hotplugCpus;
}
if (VIR_ALLOC_N(ret->gicCapabilities, qemuCaps->ngicCapabilities) < 0)
}
+bool virQEMUCapsGetMachineHotplugCpus(virQEMUCapsPtr qemuCaps,
+ const char *name)
+{
+ size_t i;
+
+ for (i = 0; i < qemuCaps->nmachineTypes; i++) {
+ if (STREQ_NULLABLE(qemuCaps->machineTypes[i].name, name))
+ return qemuCaps->machineTypes[i].hotplugCpus;
+ }
+
+ return false;
+}
+
+
/**
* virQEMUCapsSetGICCapabilities:
* @qemuCaps: QEMU capabilities
goto cleanup;
mach->maxCpus = machines[i]->maxCpus;
+ mach->hotplugCpus = machines[i]->hotplugCpus;
if (machines[i]->isDefault)
defIdx = qemuCaps->nmachineTypes - 1;
* ...
* <cpu name="pentium3"/>
* ...
- * <machine name="pc-1.0" alias="pc" maxCpus="4"/>
+ * <machine name="pc-1.0" alias="pc" hotplugCpus='yes' maxCpus="4"/>
* ...
* </qemuCaps>
*/
goto cleanup;
}
VIR_FREE(str);
+
+ str = virXMLPropString(nodes[i], "hotplugCpus");
+ if (STREQ_NULLABLE(str, "yes"))
+ qemuCaps->machineTypes[i].hotplugCpus = true;
+ VIR_FREE(str);
}
}
VIR_FREE(nodes);
if (qemuCaps->machineTypes[i].alias)
virBufferEscapeString(&buf, " alias='%s'",
qemuCaps->machineTypes[i].alias);
+ if (qemuCaps->machineTypes[i].hotplugCpus)
+ virBufferAddLit(&buf, " hotplugCpus='yes'");
virBufferAsprintf(&buf, " maxCpus='%u'/>\n",
qemuCaps->machineTypes[i].maxCpus);
}
virQEMUCapsClear(qemuCaps, filter->flags[j]);
}
+ if (!virQEMUCapsGetMachineHotplugCpus(qemuCaps, machineType))
+ virQEMUCapsClear(qemuCaps, QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS);
}
<cpu name='core2duo'/>
<cpu name='phenom'/>
<cpu name='qemu64'/>
- <machine name='pc-i440fx-2.7' alias='pc' maxCpus='255'/>
- <machine name='pc-0.12' maxCpus='255'/>
- <machine name='pc-i440fx-2.4' maxCpus='255'/>
- <machine name='pc-1.3' maxCpus='255'/>
- <machine name='pc-q35-2.7' alias='q35' maxCpus='255'/>
- <machine name='pc-q35-2.6' maxCpus='255'/>
- <machine name='pc-i440fx-1.7' maxCpus='255'/>
- <machine name='pc-i440fx-1.6' maxCpus='255'/>
- <machine name='pc-0.11' maxCpus='255'/>
- <machine name='pc-i440fx-2.3' maxCpus='255'/>
- <machine name='pc-0.10' maxCpus='255'/>
- <machine name='pc-1.2' maxCpus='255'/>
- <machine name='pc-i440fx-2.2' maxCpus='255'/>
- <machine name='isapc' maxCpus='1'/>
- <machine name='pc-q35-2.5' maxCpus='255'/>
- <machine name='pc-0.15' maxCpus='255'/>
- <machine name='pc-i440fx-1.5' maxCpus='255'/>
- <machine name='pc-0.14' maxCpus='255'/>
- <machine name='pc-i440fx-2.6' maxCpus='255'/>
- <machine name='pc-i440fx-1.4' maxCpus='255'/>
- <machine name='pc-i440fx-2.5' maxCpus='255'/>
- <machine name='pc-1.1' maxCpus='255'/>
- <machine name='pc-i440fx-2.1' maxCpus='255'/>
- <machine name='pc-1.0' maxCpus='255'/>
- <machine name='pc-i440fx-2.0' maxCpus='255'/>
- <machine name='pc-q35-2.4' maxCpus='255'/>
- <machine name='pc-0.13' maxCpus='255'/>
+ <machine name='pc-i440fx-2.7' alias='pc' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.12' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.3' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.7' alias='q35' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.7' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.11' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.3' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.10' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.2' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.2' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='isapc' hotplugCpus='yes' maxCpus='1'/>
+ <machine name='pc-q35-2.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.15' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.14' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.6' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-1.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.5' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.1' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.1' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-1.0' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-i440fx-2.0' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-q35-2.4' hotplugCpus='yes' maxCpus='255'/>
+ <machine name='pc-0.13' hotplugCpus='yes' maxCpus='255'/>
</qemuCaps>