---
src/conf/domain_audit.c | 2 +-
src/conf/domain_conf.c | 19 +++++++++++++------
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 1 +
src/libxl/libxl_conf.c | 2 +-
src/libxl/libxl_driver.c | 8 ++++----
src/lxc/lxc_controller.c | 2 +-
src/lxc/lxc_driver.c | 2 +-
src/openvz/openvz_driver.c | 2 +-
src/phyp/phyp_driver.c | 5 +++--
src/qemu/qemu_command.c | 2 +-
src/qemu/qemu_driver.c | 36 ++++++++++++++++++------------------
src/qemu/qemu_process.c | 10 +++++-----
src/test/test_driver.c | 14 +++++++-------
src/uml/uml_driver.c | 2 +-
src/vmware/vmware_driver.c | 2 +-
src/vmx/vmx.c | 14 ++++++++------
src/xen/xm_internal.c | 4 ++--
src/xenapi/xenapi_utils.c | 2 +-
src/xenconfig/xen_common.c | 3 ++-
src/xenconfig/xen_sxpr.c | 5 +++--
21 files changed, 76 insertions(+), 62 deletions(-)
diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c
index b842495..332d975 100644
--- a/src/conf/domain_audit.c
+++ b/src/conf/domain_audit.c
@@ -885,7 +885,7 @@ virDomainAuditStart(virDomainObjPtr vm, const char *reason, bool
success)
virDomainAuditMemory(vm, 0, virDomainDefGetMemoryActual(vm->def),
"start", true);
- virDomainAuditVcpu(vm, 0, vm->def->vcpus, "start", true);
+ virDomainAuditVcpu(vm, 0, virDomainDefGetVCpus(vm->def), "start",
true);
if (vm->def->niothreadids)
virDomainAuditIOThread(vm, 0, vm->def->niothreadids, "start",
true);
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3062b3a..e8a3d10 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1474,6 +1474,13 @@ virDomainDefSetVCpus(virDomainDefPtr def,
}
+unsigned int
+virDomainDefGetVCpus(const virDomainDef *def)
+{
+ return def->vcpus;
+}
+
+
virDomainDiskDefPtr
virDomainDiskDefNew(virDomainXMLOptionPtr xmlopt)
{
@@ -15200,7 +15207,7 @@ virDomainDefParseXML(xmlDocPtr xml,
goto error;
}
- if (vcpupin->id >= def->vcpus) {
+ if (vcpupin->id >= virDomainDefGetVCpus(def)) {
/* To avoid the regression when daemon loading
* domain confs, we can't simply error out if
* <vcpupin> nodes greater than current vcpus,
@@ -15218,10 +15225,10 @@ virDomainDefParseXML(xmlDocPtr xml,
* the policy specified explicitly as def->cpuset.
*/
if (def->cpumask) {
- if (VIR_REALLOC_N(def->cputune.vcpupin, def->vcpus) < 0)
+ if (VIR_REALLOC_N(def->cputune.vcpupin, virDomainDefGetVCpus(def)) < 0)
goto error;
- for (i = 0; i < def->vcpus; i++) {
+ for (i = 0; i < virDomainDefGetVCpus(def); i++) {
if (virDomainPinIsDuplicate(def->cputune.vcpupin,
def->cputune.nvcpupin,
i))
@@ -17858,10 +17865,10 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
goto error;
}
- if (src->vcpus != dst->vcpus) {
+ if (virDomainDefGetVCpus(src) != virDomainDefGetVCpus(dst)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Target domain vCPU count %d does not match source
%d"),
- dst->vcpus, src->vcpus);
+ virDomainDefGetVCpus(dst), virDomainDefGetVCpus(src));
goto error;
}
if (virDomainDefGetVCpusMax(src) != virDomainDefGetVCpusMax(dst)) {
@@ -21826,7 +21833,7 @@ virDomainDefFormatInternal(virDomainDefPtr def,
VIR_FREE(cpumask);
}
if (virDomainDefHasVCpusOffline(def))
- virBufferAsprintf(buf, " current='%u'", def->vcpus);
+ virBufferAsprintf(buf, " current='%u'",
virDomainDefGetVCpus(def));
virBufferAsprintf(buf, ">%u</vcpu>\n",
virDomainDefGetVCpusMax(def));
if (def->niothreadids > 0) {
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 44f707f..0845b2b 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2329,6 +2329,7 @@ int virDomainDefSetVCpusMax(virDomainDefPtr def, unsigned int
vcpus);
bool virDomainDefHasVCpusOffline(const virDomainDef *def);
unsigned int virDomainDefGetVCpusMax(const virDomainDef *def);
int virDomainDefSetVCpus(virDomainDefPtr def, unsigned int vcpus);
+unsigned int virDomainDefGetVCpus(const virDomainDef *def);
unsigned long long virDomainDefGetMemoryInitial(const virDomainDef *def);
void virDomainDefSetMemoryTotal(virDomainDefPtr def, unsigned long long size);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index b08c9c7..d2c4945 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -217,6 +217,7 @@ virDomainDefGetDefaultEmulator;
virDomainDefGetMemoryActual;
virDomainDefGetMemoryInitial;
virDomainDefGetSecurityLabelDef;
+virDomainDefGetVCpus;
virDomainDefGetVCpusMax;
virDomainDefHasDeviceAddress;
virDomainDefHasMemoryHotplug;
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 82ccb89..7600b7e 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -647,7 +647,7 @@ libxlMakeDomBuildInfo(virDomainDefPtr def,
if (libxl_cpu_bitmap_alloc(ctx, &b_info->avail_vcpus, b_info->max_vcpus))
return -1;
libxl_bitmap_set_none(&b_info->avail_vcpus);
- for (i = 0; i < def->vcpus; i++)
+ for (i = 0; i < virDomainDefGetVCpus(def); i++)
libxl_bitmap_set((&b_info->avail_vcpus), i);
if (def->clock.ntimers > 0 &&
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 8b225a4..c8b2557 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -1601,7 +1601,7 @@ libxlDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
}
info->state = virDomainObjGetState(vm, NULL);
- info->nrVirtCpu = vm->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(vm->def);
ret = 0;
cleanup:
@@ -2304,7 +2304,7 @@ libxlDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
if (flags & VIR_DOMAIN_VCPU_MAXIMUM)
ret = virDomainDefGetVCpusMax(def);
else
- ret = def->vcpus;
+ ret = virDomainDefGetVCpus(def);
cleanup:
if (vm)
@@ -2441,8 +2441,8 @@ libxlDomainGetVcpuPinInfo(virDomainPtr dom, int ncpumaps,
sa_assert(targetDef);
/* Clamp to actual number of vcpus */
- if (ncpumaps > targetDef->vcpus)
- ncpumaps = targetDef->vcpus;
+ if (ncpumaps > virDomainDefGetVCpus(targetDef))
+ ncpumaps = virDomainDefGetVCpus(targetDef);
if ((hostcpus = libxl_get_max_cpus(cfg->ctx)) < 0)
goto cleanup;
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 3e5d2b4..b9500f4 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -771,7 +771,7 @@ static int virLXCControllerGetNumadAdvice(virLXCControllerPtr ctrl,
* either <vcpu> or <numatune> is 'auto'.
*/
if (virDomainDefNeedsPlacementAdvice(ctrl->def)) {
- nodeset = virNumaGetAutoPlacementAdvice(ctrl->def->vcpus,
+ nodeset = virNumaGetAutoPlacementAdvice(virDomainDefGetVCpus(ctrl->def),
ctrl->def->mem.cur_balloon);
if (!nodeset)
goto cleanup;
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 1a9550e..fc82b4c 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -617,7 +617,7 @@ static int lxcDomainGetInfo(virDomainPtr dom,
}
info->maxMem = virDomainDefGetMemoryActual(vm->def);
- info->nrVirtCpu = vm->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(vm->def);
ret = 0;
cleanup:
diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c
index 37c00b2..9146b1b 100644
--- a/src/openvz/openvz_driver.c
+++ b/src/openvz/openvz_driver.c
@@ -465,7 +465,7 @@ static int openvzDomainGetInfo(virDomainPtr dom,
info->maxMem = virDomainDefGetMemoryActual(vm->def);
info->memory = vm->def->mem.cur_balloon;
- info->nrVirtCpu = vm->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(vm->def);
ret = 0;
cleanup:
diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
index a60b8b2..7bdb910 100644
--- a/src/phyp/phyp_driver.c
+++ b/src/phyp/phyp_driver.c
@@ -3525,11 +3525,12 @@ phypBuildLpar(virConnectPtr conn, virDomainDefPtr def)
if (system_type == HMC)
virBufferAsprintf(&buf, " -m %s", managed_system);
virBufferAsprintf(&buf, " -r lpar -p %s -i
min_mem=%lld,desired_mem=%lld,"
-
"max_mem=%lld,desired_procs=%d,virtual_scsi_adapters=%s",
+
"max_mem=%lld,desired_procs=%u,virtual_scsi_adapters=%s",
def->name, def->mem.cur_balloon,
def->mem.cur_balloon,
virDomainDefGetMemoryInitial(def),
- (int) def->vcpus, virDomainDiskGetSource(def->disks[0]));
+ virDomainDefGetVCpus(def),
+ virDomainDiskGetSource(def->disks[0]));
ret = phypExecBuffer(session, &buf, &exit_status, conn, false);
if (exit_status < 0) {
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4a67361..b4eeb1d 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7849,7 +7849,7 @@ qemuBuildSmpArgStr(const virDomainDef *def,
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
- virBufferAsprintf(&buf, "%u", def->vcpus);
+ virBufferAsprintf(&buf, "%u", virDomainDefGetVCpus(def));
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_TOPOLOGY)) {
if (virDomainDefHasVCpusOffline(def))
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 632ffb5..95b9ede 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2659,7 +2659,7 @@ qemuDomainGetInfo(virDomainPtr dom,
}
}
- if (VIR_ASSIGN_IS_OVERFLOW(info->nrVirtCpu, vm->def->vcpus)) {
+ if (VIR_ASSIGN_IS_OVERFLOW(info->nrVirtCpu, virDomainDefGetVCpus(vm->def))) {
virReportError(VIR_ERR_OVERFLOW, "%s", _("cpu count too
large"));
goto cleanup;
}
@@ -4700,7 +4700,7 @@ qemuDomainHotplugVcpus(virQEMUDriverPtr driver,
size_t i;
int rc = 1;
int ret = -1;
- int oldvcpus = vm->def->vcpus;
+ int oldvcpus = virDomainDefGetVCpus(vm->def);
int vcpus = oldvcpus;
pid_t *cpupids = NULL;
int ncpupids;
@@ -4929,11 +4929,11 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
if (!qemuDomainAgentAvailable(vm, true))
goto endjob;
- if (nvcpus > vm->def->vcpus) {
+ if (nvcpus > virDomainDefGetVCpus(vm->def)) {
virReportError(VIR_ERR_INVALID_ARG,
_("requested vcpu count is greater than the count "
"of enabled vcpus in the domain: %d > %d"),
- nvcpus, vm->def->vcpus);
+ nvcpus, virDomainDefGetVCpus(vm->def));
goto endjob;
}
@@ -4972,8 +4972,8 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
if (persistentDef) {
/* remove vcpupin entries for vcpus that were unplugged */
- if (nvcpus < persistentDef->vcpus) {
- for (i = persistentDef->vcpus - 1; i >= nvcpus; i--)
+ if (nvcpus < virDomainDefGetVCpus(persistentDef)) {
+ for (i = virDomainDefGetVCpus(persistentDef) - 1; i >= nvcpus; i--)
virDomainPinDel(&persistentDef->cputune.vcpupin,
&persistentDef->cputune.nvcpupin,
i);
@@ -5067,17 +5067,17 @@ qemuDomainPinVcpuFlags(virDomainPtr dom,
priv = vm->privateData;
- if (def && vcpu >= def->vcpus) {
+ if (def && vcpu >= virDomainDefGetVCpus(def)) {
virReportError(VIR_ERR_INVALID_ARG,
_("vcpu %d is out of range of live cpu count %d"),
- vcpu, def->vcpus);
+ vcpu, virDomainDefGetVCpus(def));
goto endjob;
}
- if (persistentDef && vcpu >= persistentDef->vcpus) {
+ if (persistentDef && vcpu >= virDomainDefGetVCpus(persistentDef)) {
virReportError(VIR_ERR_INVALID_ARG,
_("vcpu %d is out of range of persistent cpu count
%d"),
- vcpu, persistentDef->vcpus);
+ vcpu, virDomainDefGetVCpus(persistentDef));
goto endjob;
}
@@ -5246,8 +5246,8 @@ qemuDomainGetVcpuPinInfo(virDomainPtr dom,
priv = vm->privateData;
/* Clamp to actual number of vcpus */
- if (ncpumaps > def->vcpus)
- ncpumaps = def->vcpus;
+ if (ncpumaps > virDomainDefGetVCpus(def))
+ ncpumaps = virDomainDefGetVCpus(def);
if (ncpumaps < 1)
goto cleanup;
@@ -5561,7 +5561,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned int flags)
if (flags & VIR_DOMAIN_VCPU_MAXIMUM)
ret = virDomainDefGetVCpusMax(def);
else
- ret = def->vcpus;
+ ret = virDomainDefGetVCpus(def);
}
@@ -10587,7 +10587,7 @@ qemuGetVcpusBWLive(virDomainObjPtr vm,
goto cleanup;
if (*quota > 0)
- *quota /= vm->def->vcpus;
+ *quota /= virDomainDefGetVCpus(vm->def);
goto out;
}
@@ -19073,7 +19073,7 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
&record->nparams,
maxparams,
"vcpu.current",
- (unsigned) dom->def->vcpus) < 0)
+ virDomainDefGetVCpus(dom->def)) < 0)
return -1;
if (virTypedParamsAddUInt(&record->params,
@@ -19083,17 +19083,17 @@ qemuDomainGetStatsVcpu(virQEMUDriverPtr driver
ATTRIBUTE_UNUSED,
virDomainDefGetVCpusMax(dom->def)) < 0)
return -1;
- if (VIR_ALLOC_N(cpuinfo, dom->def->vcpus) < 0)
+ if (VIR_ALLOC_N(cpuinfo, virDomainDefGetVCpus(dom->def)) < 0)
return -1;
- if (qemuDomainHelperGetVcpus(dom, cpuinfo, dom->def->vcpus,
+ if (qemuDomainHelperGetVcpus(dom, cpuinfo, virDomainDefGetVCpus(dom->def),
NULL, 0) < 0) {
virResetLastError();
ret = 0; /* it's ok to be silent and go ahead */
goto cleanup;
}
- for (i = 0; i < dom->def->vcpus; i++) {
+ for (i = 0; i < virDomainDefGetVCpus(dom->def); i++) {
snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
"vcpu.%zu.state", i);
if (virTypedParamsAddInt(&record->params,
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 0706ee3..721647f 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -2072,11 +2072,11 @@ qemuProcessDetectVcpuPIDs(virQEMUDriverPtr driver,
return 0;
}
- if (ncpupids != vm->def->vcpus) {
+ if (ncpupids != virDomainDefGetVCpus(vm->def)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("got wrong number of vCPU pids from QEMU monitor. "
"got %d, wanted %d"),
- ncpupids, vm->def->vcpus);
+ ncpupids, virDomainDefGetVCpus(vm->def));
VIR_FREE(cpupids);
return -1;
}
@@ -2292,7 +2292,7 @@ qemuProcessSetVcpuAffinities(virDomainObjPtr vm)
int n;
int ret = -1;
VIR_DEBUG("Setting affinity on CPUs nvcpupin=%zu nvcpus=%d nvcpupids=%d",
- def->cputune.nvcpupin, def->vcpus, priv->nvcpupids);
+ def->cputune.nvcpupin, virDomainDefGetVCpus(def), priv->nvcpupids);
if (!def->cputune.nvcpupin)
return 0;
@@ -2311,7 +2311,7 @@ qemuProcessSetVcpuAffinities(virDomainObjPtr vm)
return 0;
}
- for (n = 0; n < def->vcpus; n++) {
+ for (n = 0; n < virDomainDefGetVCpus(def); n++) {
/* set affinity only for existing vcpus */
if (!(pininfo = virDomainPinFind(def->cputune.vcpupin,
def->cputune.nvcpupin,
@@ -4678,7 +4678,7 @@ int qemuProcessStart(virConnectPtr conn,
* either <vcpu> or <numatune> is 'auto'.
*/
if (virDomainDefNeedsPlacementAdvice(vm->def)) {
- nodeset = virNumaGetAutoPlacementAdvice(vm->def->vcpus,
+ nodeset = virNumaGetAutoPlacementAdvice(virDomainDefGetVCpus(vm->def),
virDomainDefGetMemoryActual(vm->def));
if (!nodeset)
goto error;
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 00f5c1e..ff28fcd 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -1927,7 +1927,7 @@ static int testDomainGetInfo(virDomainPtr domain,
info->state = virDomainObjGetState(privdom, NULL);
info->memory = privdom->def->mem.cur_balloon;
info->maxMem = virDomainDefGetMemoryActual(privdom->def);
- info->nrVirtCpu = privdom->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(privdom->def);
info->cpuTime = ((tv.tv_sec * 1000ll * 1000ll * 1000ll) + (tv.tv_usec *
1000ll));
ret = 0;
@@ -2315,7 +2315,7 @@ testDomainGetVcpusFlags(virDomainPtr domain, unsigned int flags)
if (flags & VIR_DOMAIN_VCPU_MAXIMUM)
ret = virDomainDefGetVCpusMax(def);
else
- ret = def->vcpus;
+ ret = virDomainDefGetVCpus(def);
cleanup:
virDomainObjEndAPI(&vm);
@@ -2447,8 +2447,8 @@ static int testDomainGetVcpus(virDomainPtr domain,
virBitmapSetAll(allcpumap);
/* Clamp to actual number of vcpus */
- if (maxinfo > privdom->def->vcpus)
- maxinfo = privdom->def->vcpus;
+ if (maxinfo > virDomainDefGetVCpus(privdom->def))
+ maxinfo = virDomainDefGetVCpus(privdom->def);
memset(info, 0, sizeof(*info) * maxinfo);
memset(cpumaps, 0, maxinfo * maplen);
@@ -2506,7 +2506,7 @@ static int testDomainPinVcpu(virDomainPtr domain,
goto cleanup;
}
- if (vcpu > privdom->def->vcpus) {
+ if (vcpu > virDomainDefGetVCpus(privdom->def)) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("requested vcpu is higher than allocated vcpus"));
goto cleanup;
@@ -2560,8 +2560,8 @@ testDomainGetVcpuPinInfo(virDomainPtr dom,
virBitmapSetAll(allcpumap);
/* Clamp to actual number of vcpus */
- if (ncpumaps > def->vcpus)
- ncpumaps = def->vcpus;
+ if (ncpumaps > virDomainDefGetVCpus(def))
+ ncpumaps = virDomainDefGetVCpus(def);
for (vcpu = 0; vcpu < ncpumaps; vcpu++) {
virDomainPinDefPtr pininfo;
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index 14598fc..aad4745 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -1916,7 +1916,7 @@ static int umlDomainGetInfo(virDomainPtr dom,
info->maxMem = virDomainDefGetMemoryActual(vm->def);
info->memory = vm->def->mem.cur_balloon;
- info->nrVirtCpu = vm->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(vm->def);
ret = 0;
cleanup:
diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c
index a12b03a..f793adc 100644
--- a/src/vmware/vmware_driver.c
+++ b/src/vmware/vmware_driver.c
@@ -1142,7 +1142,7 @@ vmwareDomainGetInfo(virDomainPtr dom, virDomainInfoPtr info)
info->cpuTime = 0;
info->maxMem = virDomainDefGetMemoryActual(vm->def);
info->memory = vm->def->mem.cur_balloon;
- info->nrVirtCpu = vm->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(vm->def);
ret = 0;
cleanup:
diff --git a/src/vmx/vmx.c b/src/vmx/vmx.c
index 62636a9..654e431 100644
--- a/src/vmx/vmx.c
+++ b/src/vmx/vmx.c
@@ -1539,13 +1539,14 @@ virVMXParseConfig(virVMXContext *ctx,
}
if (sched_cpu_shares != NULL) {
+ unsigned int vcpus = virDomainDefGetVCpus(def);
/* See
http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/v...
*/
if (STRCASEEQ(sched_cpu_shares, "low")) {
- def->cputune.shares = def->vcpus * 500;
+ def->cputune.shares = vcpus * 500;
} else if (STRCASEEQ(sched_cpu_shares, "normal")) {
- def->cputune.shares = def->vcpus * 1000;
+ def->cputune.shares = vcpus * 1000;
} else if (STRCASEEQ(sched_cpu_shares, "high")) {
- def->cputune.shares = def->vcpus * 2000;
+ def->cputune.shares = vcpus * 2000;
} else if (virStrToLong_ul(sched_cpu_shares, NULL, 10,
&def->cputune.shares) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -3228,12 +3229,13 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOptionPtr
xmlopt, virDomainDe
/* def:cputune.shares -> vmx:sched.cpu.shares */
if (def->cputune.sharesSpecified) {
+ unsigned int vcpus = virDomainDefGetVCpus(def);
/* See
http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/v...
*/
- if (def->cputune.shares == def->vcpus * 500) {
+ if (def->cputune.shares == vcpus * 500) {
virBufferAddLit(&buffer, "sched.cpu.shares =
\"low\"\n");
- } else if (def->cputune.shares == def->vcpus * 1000) {
+ } else if (def->cputune.shares == vcpus * 1000) {
virBufferAddLit(&buffer, "sched.cpu.shares =
\"normal\"\n");
- } else if (def->cputune.shares == def->vcpus * 2000) {
+ } else if (def->cputune.shares == vcpus * 2000) {
virBufferAddLit(&buffer, "sched.cpu.shares =
\"high\"\n");
} else {
virBufferAsprintf(&buffer, "sched.cpu.shares =
\"%lu\"\n",
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
index 374cc41..7e227bc 100644
--- a/src/xen/xm_internal.c
+++ b/src/xen/xm_internal.c
@@ -483,7 +483,7 @@ xenXMDomainGetInfo(virConnectPtr conn,
memset(info, 0, sizeof(virDomainInfo));
info->maxMem = virDomainDefGetMemoryActual(entry->def);
info->memory = entry->def->mem.cur_balloon;
- info->nrVirtCpu = entry->def->vcpus;
+ info->nrVirtCpu = virDomainDefGetVCpus(entry->def);
info->state = VIR_DOMAIN_SHUTOFF;
info->cpuTime = 0;
@@ -765,7 +765,7 @@ xenXMDomainGetVcpusFlags(virConnectPtr conn,
if (flags & VIR_DOMAIN_VCPU_MAXIMUM)
ret = virDomainDefGetVCpusMax(entry->def);
else
- ret = entry->def->vcpus;
+ ret = virDomainDefGetVCpus(entry->def);
cleanup:
xenUnifiedUnlock(priv);
diff --git a/src/xenapi/xenapi_utils.c b/src/xenapi/xenapi_utils.c
index d40f959..6f33e8a 100644
--- a/src/xenapi/xenapi_utils.c
+++ b/src/xenapi/xenapi_utils.c
@@ -505,7 +505,7 @@ createVMRecordFromXml(virConnectPtr conn, virDomainDefPtr def,
(*record)->memory_dynamic_max = (*record)->memory_static_max;
(*record)->vcpus_max = (int64_t) virDomainDefGetVCpusMax(def);
- (*record)->vcpus_at_startup = (int64_t) def->vcpus;
+ (*record)->vcpus_at_startup = (int64_t) virDomainDefGetVCpus(def);
if (def->onPoweroff)
(*record)->actions_after_shutdown =
actionShutdownLibvirt2XenapiEnum(def->onPoweroff);
if (def->onReboot)
diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c
index d617773..cbde572 100644
--- a/src/xenconfig/xen_common.c
+++ b/src/xenconfig/xen_common.c
@@ -1535,7 +1535,8 @@ xenFormatCPUAllocation(virConfPtr conf, virDomainDefPtr def)
/* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
either 32, or 64 on a platform where long is big enough. */
if (virDomainDefHasVCpusOffline(def) &&
- xenConfigSetInt(conf, "vcpu_avail", (1UL << def->vcpus) - 1)
< 0)
+ xenConfigSetInt(conf, "vcpu_avail",
+ (1UL << virDomainDefGetVCpus(def)) - 1) < 0)
goto cleanup;
if ((def->cpumask != NULL) &&
diff --git a/src/xenconfig/xen_sxpr.c b/src/xenconfig/xen_sxpr.c
index 534130e..32c5e08 100644
--- a/src/xenconfig/xen_sxpr.c
+++ b/src/xenconfig/xen_sxpr.c
@@ -2231,7 +2231,8 @@ xenFormatSxpr(virConnectPtr conn,
/* Computing the vcpu_avail bitmask works because MAX_VIRT_CPUS is
either 32, or 64 on a platform where long is big enough. */
if (virDomainDefHasVCpusOffline(def))
- virBufferAsprintf(&buf, "(vcpu_avail %lu)", (1UL <<
def->vcpus) - 1);
+ virBufferAsprintf(&buf, "(vcpu_avail %lu)",
+ (1UL << virDomainDefGetVCpus(def)) - 1);
if (def->cpumask) {
char *ranges = virBitmapFormat(def->cpumask);
@@ -2314,7 +2315,7 @@ xenFormatSxpr(virConnectPtr conn,
virBufferAsprintf(&buf, "(vcpus %u)",
virDomainDefGetVCpusMax(def));
if (virDomainDefHasVCpusOffline(def))
virBufferAsprintf(&buf, "(vcpu_avail %lu)",
- (1UL << def->vcpus) - 1);
+ (1UL << virDomainDefGetVCpus(def)) - 1);
for (i = 0; i < def->os.nBootDevs; i++) {
switch (def->os.bootDevs[i]) {
--
2.6.2