static virJSONValue *
qemuMonitorJSONMakeCPUModel(virCPUDef *cpu,
- bool migratable)
+ bool migratable,
+ bool hv_passthrough)
{
g_autoptr(virJSONValue) model = virJSONValueNewObject();
size_t i;
if (virJSONValueObjectAppendString(model, "name", cpu->model) < 0)
return NULL;
- if (cpu->nfeatures || !migratable) {
+ if (cpu->nfeatures || !migratable || hv_passthrough) {
g_autoptr(virJSONValue) props = virJSONValueNewObject();
for (i = 0; i < cpu->nfeatures; i++) {
return NULL;
}
+ if (hv_passthrough &&
+ virJSONValueObjectAppendBoolean(props, "hv-passthrough", true) < 0) {
+ return NULL;
+ }
+
if (virJSONValueObjectAppend(model, "props", &props) < 0)
return NULL;
}
*model_info = NULL;
- if (!(model = qemuMonitorJSONMakeCPUModel(cpu, migratable)))
+ if (!(model = qemuMonitorJSONMakeCPUModel(cpu, migratable, false)))
return -1;
if ((rc = qemuMonitorJSONQueryCPUModelExpansionOne(mon, type, &model, &data)) <= 0)
virJSONValue *cpu_props = NULL;
const char *cpu_name = "";
- if (!(model_a = qemuMonitorJSONMakeCPUModel(cpu_a, true)) ||
- !(model_b = qemuMonitorJSONMakeCPUModel(cpu_b, true)))
+ if (!(model_a = qemuMonitorJSONMakeCPUModel(cpu_a, true, false)) ||
+ !(model_b = qemuMonitorJSONMakeCPUModel(cpu_b, true, false)))
return -1;
if (!(cmd = qemuMonitorJSONMakeCommand("query-cpu-model-baseline",
const char *data_result;
virJSONValue *data;
- if (!(model_a = qemuMonitorJSONMakeCPUModel(cpu_a, true)) ||
- !(model_b = qemuMonitorJSONMakeCPUModel(cpu_b, true)))
+ if (!(model_a = qemuMonitorJSONMakeCPUModel(cpu_a, true, false)) ||
+ !(model_b = qemuMonitorJSONMakeCPUModel(cpu_b, true, false)))
return -1;
if (!(cmd = qemuMonitorJSONMakeCommand("query-cpu-model-comparison",