mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 11:31:16 +00:00
conf: Replace writes to def->maxvcpus with accessor
To support further refactors replace all write access to def->maxvcpus with a accessor function.
This commit is contained in:
parent
6aff1e9ca5
commit
4e187169f0
@ -1284,6 +1284,16 @@ void virDomainLeaseDefFree(virDomainLeaseDefPtr def)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
virDomainDefSetVcpusMax(virDomainDefPtr def,
|
||||||
|
unsigned int maxvcpus)
|
||||||
|
{
|
||||||
|
def->maxvcpus = maxvcpus;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
virDomainDiskDefPtr
|
virDomainDiskDefPtr
|
||||||
virDomainDiskDefNew(virDomainXMLOptionPtr xmlopt)
|
virDomainDiskDefNew(virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
@ -14374,18 +14384,22 @@ virDomainVcpuParse(virDomainDefPtr def,
|
|||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
char *tmp = NULL;
|
char *tmp = NULL;
|
||||||
|
unsigned int maxvcpus;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if ((n = virXPathUInt("string(./vcpu[1])", ctxt, &def->maxvcpus)) < 0) {
|
if ((n = virXPathUInt("string(./vcpu[1])", ctxt, &maxvcpus)) < 0) {
|
||||||
if (n == -2) {
|
if (n == -2) {
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
_("maximum vcpus count must be an integer"));
|
_("maximum vcpus count must be an integer"));
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
def->maxvcpus = 1;
|
maxvcpus = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (virDomainDefSetVcpusMax(def, maxvcpus) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if ((n = virXPathUInt("string(./vcpu[1]/@current)", ctxt, &def->vcpus)) < 0) {
|
if ((n = virXPathUInt("string(./vcpu[1]/@current)", ctxt, &def->vcpus)) < 0) {
|
||||||
if (n == -2) {
|
if (n == -2) {
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
|
@ -2343,6 +2343,8 @@ struct _virDomainDef {
|
|||||||
xmlNodePtr metadata;
|
xmlNodePtr metadata;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int virDomainDefSetVcpusMax(virDomainDefPtr def, unsigned int vcpus);
|
||||||
|
|
||||||
unsigned long long virDomainDefGetMemoryInitial(const virDomainDef *def);
|
unsigned long long virDomainDefGetMemoryInitial(const virDomainDef *def);
|
||||||
void virDomainDefSetMemoryTotal(virDomainDefPtr def, unsigned long long size);
|
void virDomainDefSetMemoryTotal(virDomainDefPtr def, unsigned long long size);
|
||||||
void virDomainDefSetMemoryInitial(virDomainDefPtr def, unsigned long long size);
|
void virDomainDefSetMemoryInitial(virDomainDefPtr def, unsigned long long size);
|
||||||
|
@ -873,8 +873,11 @@ hypervDomainGetXMLDesc(virDomainPtr domain, unsigned int flags)
|
|||||||
virDomainDefSetMemoryTotal(def, memorySettingData->data->Limit * 1024); /* megabyte to kilobyte */
|
virDomainDefSetMemoryTotal(def, memorySettingData->data->Limit * 1024); /* megabyte to kilobyte */
|
||||||
def->mem.cur_balloon = memorySettingData->data->VirtualQuantity * 1024; /* megabyte to kilobyte */
|
def->mem.cur_balloon = memorySettingData->data->VirtualQuantity * 1024; /* megabyte to kilobyte */
|
||||||
|
|
||||||
|
if (virDomainDefSetVcpusMax(def,
|
||||||
|
processorSettingData->data->VirtualQuantity) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
def->vcpus = processorSettingData->data->VirtualQuantity;
|
def->vcpus = processorSettingData->data->VirtualQuantity;
|
||||||
def->maxvcpus = processorSettingData->data->VirtualQuantity;
|
|
||||||
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
def->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||||
|
|
||||||
/* FIXME: devices section is totally missing */
|
/* FIXME: devices section is totally missing */
|
||||||
|
@ -230,6 +230,7 @@ virDomainDefParseString;
|
|||||||
virDomainDefPostParse;
|
virDomainDefPostParse;
|
||||||
virDomainDefSetMemoryInitial;
|
virDomainDefSetMemoryInitial;
|
||||||
virDomainDefSetMemoryTotal;
|
virDomainDefSetMemoryTotal;
|
||||||
|
virDomainDefSetVcpusMax;
|
||||||
virDomainDeleteConfig;
|
virDomainDeleteConfig;
|
||||||
virDomainDeviceAddressIsValid;
|
virDomainDeviceAddressIsValid;
|
||||||
virDomainDeviceAddressTypeToString;
|
virDomainDeviceAddressTypeToString;
|
||||||
|
@ -552,8 +552,10 @@ libxlAddDom0(libxlDriverPrivatePtr driver)
|
|||||||
def = NULL;
|
def = NULL;
|
||||||
|
|
||||||
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED);
|
virDomainObjSetState(vm, VIR_DOMAIN_RUNNING, VIR_DOMAIN_RUNNING_BOOTED);
|
||||||
|
if (virDomainDefSetVcpusMax(vm->def, d_info.vcpu_max_id + 1))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
vm->def->vcpus = d_info.vcpu_online;
|
vm->def->vcpus = d_info.vcpu_online;
|
||||||
vm->def->maxvcpus = d_info.vcpu_max_id + 1;
|
|
||||||
vm->def->mem.cur_balloon = d_info.current_memkb;
|
vm->def->mem.cur_balloon = d_info.current_memkb;
|
||||||
virDomainDefSetMemoryTotal(vm->def, d_info.max_memkb);
|
virDomainDefSetMemoryTotal(vm->def, d_info.max_memkb);
|
||||||
|
|
||||||
@ -2184,7 +2186,9 @@ libxlDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
|
|||||||
|
|
||||||
switch (flags) {
|
switch (flags) {
|
||||||
case VIR_DOMAIN_VCPU_MAXIMUM | VIR_DOMAIN_VCPU_CONFIG:
|
case VIR_DOMAIN_VCPU_MAXIMUM | VIR_DOMAIN_VCPU_CONFIG:
|
||||||
def->maxvcpus = nvcpus;
|
if (virDomainDefSetVcpusMax(def, nvcpus) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if (nvcpus < def->vcpus)
|
if (nvcpus < def->vcpus)
|
||||||
def->vcpus = nvcpus;
|
def->vcpus = nvcpus;
|
||||||
break;
|
break;
|
||||||
|
@ -1021,7 +1021,9 @@ lxcParseConfigString(const char *config,
|
|||||||
|
|
||||||
/* Value not handled by the LXC driver, setting to
|
/* Value not handled by the LXC driver, setting to
|
||||||
* minimum required to make XML parsing pass */
|
* minimum required to make XML parsing pass */
|
||||||
vmdef->maxvcpus = 1;
|
if (virDomainDefSetVcpusMax(vmdef, 1) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
vmdef->vcpus = 1;
|
vmdef->vcpus = 1;
|
||||||
|
|
||||||
vmdef->nfss = 0;
|
vmdef->nfss = 0;
|
||||||
|
@ -582,7 +582,9 @@ int openvzLoadDomains(struct openvz_driver *driver)
|
|||||||
if (ret == 0 || vcpus == 0)
|
if (ret == 0 || vcpus == 0)
|
||||||
vcpus = openvzGetNodeCPUs();
|
vcpus = openvzGetNodeCPUs();
|
||||||
|
|
||||||
def->maxvcpus = vcpus;
|
if (virDomainDefSetVcpusMax(def, vcpus) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
def->vcpus = vcpus;
|
def->vcpus = vcpus;
|
||||||
|
|
||||||
/* XXX load rest of VM config data .... */
|
/* XXX load rest of VM config data .... */
|
||||||
|
@ -1368,7 +1368,10 @@ static int openvzDomainSetVcpusInternal(virDomainObjPtr vm,
|
|||||||
if (virRun(prog, NULL) < 0)
|
if (virRun(prog, NULL) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
vm->def->maxvcpus = vm->def->vcpus = nvcpus;
|
if (virDomainDefSetVcpusMax(vm->def, nvcpus) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
vm->def->vcpus = nvcpus;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3295,7 +3295,9 @@ phypDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
def.maxvcpus = vcpus;
|
if (virDomainDefSetVcpusMax(&def, vcpus) < 0)
|
||||||
|
goto err;
|
||||||
|
|
||||||
def.vcpus = vcpus;
|
def.vcpus = vcpus;
|
||||||
|
|
||||||
return virDomainDefFormat(&def,
|
return virDomainDefFormat(&def,
|
||||||
|
@ -12745,7 +12745,11 @@ qemuParseCommandLineSmp(virDomainDefPtr dom,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dom->maxvcpus = maxcpus ? maxcpus : dom->vcpus;
|
if (maxcpus == 0)
|
||||||
|
maxcpus = dom->vcpus;
|
||||||
|
|
||||||
|
if (virDomainDefSetVcpusMax(dom, maxcpus) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
if (sockets && cores && threads) {
|
if (sockets && cores && threads) {
|
||||||
virCPUDefPtr cpu;
|
virCPUDefPtr cpu;
|
||||||
@ -12859,7 +12863,8 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
|
|||||||
def->id = -1;
|
def->id = -1;
|
||||||
def->mem.cur_balloon = 64 * 1024;
|
def->mem.cur_balloon = 64 * 1024;
|
||||||
virDomainDefSetMemoryTotal(def, def->mem.cur_balloon);
|
virDomainDefSetMemoryTotal(def, def->mem.cur_balloon);
|
||||||
def->maxvcpus = 1;
|
if (virDomainDefSetVcpusMax(def, 1) < 0)
|
||||||
|
goto error;
|
||||||
def->vcpus = 1;
|
def->vcpus = 1;
|
||||||
def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_UTC;
|
def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_UTC;
|
||||||
|
|
||||||
|
@ -4979,7 +4979,9 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
||||||
persistentDef->maxvcpus = nvcpus;
|
if (virDomainDefSetVcpusMax(persistentDef, nvcpus) < 0)
|
||||||
|
goto endjob;
|
||||||
|
|
||||||
if (nvcpus < persistentDef->vcpus)
|
if (nvcpus < persistentDef->vcpus)
|
||||||
persistentDef->vcpus = nvcpus;
|
persistentDef->vcpus = nvcpus;
|
||||||
} else {
|
} else {
|
||||||
|
@ -2377,7 +2377,9 @@ testDomainSetVcpusFlags(virDomainPtr domain, unsigned int nrCpus,
|
|||||||
|
|
||||||
if (persistentDef) {
|
if (persistentDef) {
|
||||||
if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
||||||
persistentDef->maxvcpus = nrCpus;
|
if (virDomainDefSetVcpusMax(persistentDef, nrCpus) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if (nrCpus < persistentDef->vcpus)
|
if (nrCpus < persistentDef->vcpus)
|
||||||
persistentDef->vcpus = nrCpus;
|
persistentDef->vcpus = nrCpus;
|
||||||
} else {
|
} else {
|
||||||
|
@ -3907,7 +3907,10 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
|||||||
virDomainDefSetMemoryTotal(def, memorySize * 1024);
|
virDomainDefSetMemoryTotal(def, memorySize * 1024);
|
||||||
|
|
||||||
gVBoxAPI.UIMachine.GetCPUCount(machine, &CPUCount);
|
gVBoxAPI.UIMachine.GetCPUCount(machine, &CPUCount);
|
||||||
def->maxvcpus = def->vcpus = CPUCount;
|
if (virDomainDefSetVcpusMax(def, CPUCount) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
def->vcpus = CPUCount;
|
||||||
|
|
||||||
/* Skip cpumasklen, cpumask, onReboot, onPoweroff, onCrash */
|
/* Skip cpumasklen, cpumask, onReboot, onPoweroff, onCrash */
|
||||||
|
|
||||||
@ -6061,7 +6064,11 @@ static char *vboxDomainSnapshotGetXMLDesc(virDomainSnapshotPtr snapshot,
|
|||||||
def->dom->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
def->dom->os.type = VIR_DOMAIN_OSTYPE_HVM;
|
||||||
def->dom->os.arch = virArchFromHost();
|
def->dom->os.arch = virArchFromHost();
|
||||||
gVBoxAPI.UIMachine.GetCPUCount(machine, &CPUCount);
|
gVBoxAPI.UIMachine.GetCPUCount(machine, &CPUCount);
|
||||||
def->dom->maxvcpus = def->dom->vcpus = CPUCount;
|
if (virDomainDefSetVcpusMax(def->dom, CPUCount) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
def->dom->vcpus = CPUCount;
|
||||||
|
|
||||||
if (vboxSnapshotGetReadWriteDisks(def, snapshot) < 0)
|
if (vboxSnapshotGetReadWriteDisks(def, snapshot) < 0)
|
||||||
VIR_DEBUG("Could not get read write disks for snapshot");
|
VIR_DEBUG("Could not get read write disks for snapshot");
|
||||||
|
|
||||||
|
@ -1458,7 +1458,10 @@ virVMXParseConfig(virVMXContext *ctx,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
def->maxvcpus = def->vcpus = numvcpus;
|
if (virDomainDefSetVcpusMax(def, numvcpus) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
def->vcpus = numvcpus;
|
||||||
|
|
||||||
/* vmx:sched.cpu.affinity -> def:cpumask */
|
/* vmx:sched.cpu.affinity -> def:cpumask */
|
||||||
/* NOTE: maps to VirtualMachine:config.cpuAffinity.affinitySet */
|
/* NOTE: maps to VirtualMachine:config.cpuAffinity.affinitySet */
|
||||||
|
@ -1150,8 +1150,10 @@ prlsdkConvertCpuInfo(PRL_HANDLE sdkdom,
|
|||||||
if (cpuCount > hostcpus)
|
if (cpuCount > hostcpus)
|
||||||
cpuCount = hostcpus;
|
cpuCount = hostcpus;
|
||||||
|
|
||||||
|
if (virDomainDefSetVcpusMax(def, cpuCount) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
def->vcpus = cpuCount;
|
def->vcpus = cpuCount;
|
||||||
def->maxvcpus = cpuCount;
|
|
||||||
|
|
||||||
pret = PrlVmCfg_GetCpuMask(sdkdom, NULL, &buflen);
|
pret = PrlVmCfg_GetCpuMask(sdkdom, NULL, &buflen);
|
||||||
prlsdkCheckRetGoto(pret, cleanup);
|
prlsdkCheckRetGoto(pret, cleanup);
|
||||||
|
@ -704,7 +704,9 @@ xenXMDomainSetVcpusFlags(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
if (flags & VIR_DOMAIN_VCPU_MAXIMUM) {
|
||||||
entry->def->maxvcpus = vcpus;
|
if (virDomainDefSetVcpusMax(entry->def, vcpus) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
if (entry->def->vcpus > vcpus)
|
if (entry->def->vcpus > vcpus)
|
||||||
entry->def->vcpus = vcpus;
|
entry->def->vcpus = vcpus;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1502,7 +1502,9 @@ xenapiDomainGetXMLDesc(virDomainPtr dom, unsigned int flags)
|
|||||||
|
|
||||||
vcpus = xenapiDomainGetMaxVcpus(dom);
|
vcpus = xenapiDomainGetMaxVcpus(dom);
|
||||||
|
|
||||||
defPtr->maxvcpus = vcpus;
|
if (virDomainDefSetVcpusMax(defPtr, vcpus) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
defPtr->vcpus = vcpus;
|
defPtr->vcpus = vcpus;
|
||||||
|
|
||||||
enum xen_on_normal_exit action;
|
enum xen_on_normal_exit action;
|
||||||
|
@ -502,7 +502,9 @@ xenParseCPUFeatures(virConfPtr conf, virDomainDefPtr def)
|
|||||||
MAX_VIRT_CPUS < count)
|
MAX_VIRT_CPUS < count)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
def->maxvcpus = count;
|
if (virDomainDefSetVcpusMax(def, count) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (xenConfigGetULong(conf, "vcpu_avail", &count, -1) < 0)
|
if (xenConfigGetULong(conf, "vcpu_avail", &count, -1) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -1173,7 +1173,8 @@ xenParseSxpr(const struct sexpr *root,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def->maxvcpus = sexpr_int(root, "domain/vcpus");
|
if (virDomainDefSetVcpusMax(def, sexpr_int(root, "domain/vcpus")) < 0)
|
||||||
|
goto error;
|
||||||
def->vcpus = count_one_bits_l(sexpr_u64(root, "domain/vcpu_avail"));
|
def->vcpus = count_one_bits_l(sexpr_u64(root, "domain/vcpu_avail"));
|
||||||
if (!def->vcpus || def->maxvcpus < def->vcpus)
|
if (!def->vcpus || def->maxvcpus < def->vcpus)
|
||||||
def->vcpus = def->maxvcpus;
|
def->vcpus = def->maxvcpus;
|
||||||
|
Loading…
Reference in New Issue
Block a user