On Thu, Oct 12, 2017 at 07:23:25 -0400, John Ferlan wrote: > > > On 10/04/2017 10:58 AM, Jiri Denemark wrote: > > When a hypervisor marks a CPU model as unusable on the current host, it > > may also give us a list of features which prevent the model from being > > usable. Storing this list in virDomainCapsCPUModel will help the CPU > > driver with creating a host-model CPU configuration. > > > > Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> > > --- > > src/conf/domain_capabilities.c | 30 ++++++++++++++++++++++-------- > > src/conf/domain_capabilities.h | 7 +++++-- > > src/qemu/qemu_capabilities.c | 11 ++++++----- > > tests/domaincapstest.c | 6 +++--- > > 4 files changed, 36 insertions(+), 18 deletions(-) > > > > diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c > > index f62038b96c..be34576204 100644 > > --- a/src/conf/domain_capabilities.c > > +++ b/src/conf/domain_capabilities.c > > @@ -163,7 +163,8 @@ virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old) > > for (i = 0; i < old->nmodels; i++) { > > if (virDomainCapsCPUModelsAdd(cpuModels, > > old->models[i].name, -1, > > - old->models[i].usable) < 0) > > + old->models[i].usable, > > + old->models[i].blockers) < 0) > > goto error; > > } > > > > @@ -195,7 +196,8 @@ virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, > > > > if (virDomainCapsCPUModelsAdd(cpuModels, > > old->models[i].name, -1, > > - old->models[i].usable) < 0) > > + old->models[i].usable, > > + old->models[i].blockers) < 0) > > goto error; > > } > > > > @@ -210,7 +212,8 @@ virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, > > int > > virDomainCapsCPUModelsAddSteal(virDomainCapsCPUModelsPtr cpuModels, > > char **name, > > - virDomainCapsCPUUsable usable) > > + virDomainCapsCPUUsable usable, > > + char ***blockers) > > { > > if (VIR_RESIZE_N(cpuModels->models, cpuModels->nmodels_max, > > cpuModels->nmodels, 1) < 0) > > @@ -218,6 +221,10 @@ virDomainCapsCPUModelsAddSteal(virDomainCapsCPUModelsPtr cpuModels, > > > > cpuModels->models[cpuModels->nmodels].usable = usable; > > VIR_STEAL_PTR(cpuModels->models[cpuModels->nmodels].name, *name); > > + > > + if (blockers) > > + VIR_STEAL_PTR(cpuModels->models[cpuModels->nmodels].blockers, *blockers); > > + > > So @name is required and @blockers can be NULL/optional... Hopefully no > one ever gets confused. I don't think there's any room for confusion since @blockers only make sense if the CPU model @name is unusable. They are naturally optional. Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list