int
-qemuSetupCpusetMems(virDomainObjPtr vm,
- virBitmapPtr nodemask)
+qemuSetupCpusetMems(virDomainObjPtr vm)
{
virCgroupPtr cgroup_temp = NULL;
qemuDomainObjPrivatePtr priv = vm->privateData;
return 0;
if (virDomainNumatuneMaybeFormatNodeset(vm->def->numatune,
- nodemask,
+ priv->autoNodeset,
&mem_mask, -1) < 0)
goto cleanup;
static int
qemuSetupCpusetCgroup(virDomainObjPtr vm,
- virBitmapPtr nodemask,
virCapsPtr caps)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
if (vm->def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO) {
virBitmapPtr cpumap;
- if (!(cpumap = virCapabilitiesGetCpusForNodemask(caps, nodemask)))
+ if (!(cpumap = virCapabilitiesGetCpusForNodemask(caps, priv->autoNodeset)))
goto cleanup;
cpu_mask = virBitmapFormat(cpumap);
virBitmapFree(cpumap);
int
qemuSetupCgroup(virQEMUDriverPtr driver,
- virDomainObjPtr vm,
- virBitmapPtr nodemask)
+ virDomainObjPtr vm)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
virCapsPtr caps = NULL;
if (qemuSetupCpuCgroup(driver, vm) < 0)
goto cleanup;
- if (qemuSetupCpusetCgroup(vm, nodemask, caps) < 0)
+ if (qemuSetupCpusetCgroup(vm, caps) < 0)
goto cleanup;
ret = 0;
int
qemuSetupCgroupForEmulator(virQEMUDriverPtr driver,
- virDomainObjPtr vm,
- virBitmapPtr nodemask)
+ virDomainObjPtr vm)
{
virBitmapPtr cpumask = NULL;
virBitmapPtr cpumap = NULL;
goto cleanup;
if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO) {
- if (!(cpumap = qemuPrepareCpumap(driver, nodemask)))
+ if (!(cpumap = qemuPrepareCpumap(driver, priv->autoNodeset)))
goto cleanup;
cpumask = cpumap;
} else if (def->cputune.emulatorpin) {
int qemuConnectCgroup(virQEMUDriverPtr driver,
virDomainObjPtr vm);
int qemuSetupCgroup(virQEMUDriverPtr driver,
- virDomainObjPtr vm,
- virBitmapPtr nodemask);
-int qemuSetupCpusetMems(virDomainObjPtr vm,
- virBitmapPtr nodemask);
+ virDomainObjPtr vm);
+int qemuSetupCpusetMems(virDomainObjPtr vm);
int qemuSetupCgroupVcpuBW(virCgroupPtr cgroup,
unsigned long long period,
long long quota);
int qemuSetupCgroupForVcpu(virDomainObjPtr vm);
int qemuSetupCgroupForIOThreads(virDomainObjPtr vm);
int qemuSetupCgroupForEmulator(virQEMUDriverPtr driver,
- virDomainObjPtr vm,
- virBitmapPtr nodemask);
+ virDomainObjPtr vm);
int qemuRemoveCgroup(virQEMUDriverPtr driver, virDomainObjPtr vm);
int qemuAddToCgroup(virDomainObjPtr vm);
*/
static int
qemuProcessInitCpuAffinity(virQEMUDriverPtr driver,
- virDomainObjPtr vm,
- virBitmapPtr nodemask)
+ virDomainObjPtr vm)
{
int ret = -1;
virBitmapPtr cpumap = NULL;
virBitmapPtr cpumapToSet = NULL;
+ qemuDomainObjPrivatePtr priv = vm->privateData;
if (!vm->pid) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
return -1;
}
- if (!(cpumap = qemuPrepareCpumap(driver, nodemask)))
+ if (!(cpumap = qemuPrepareCpumap(driver, priv->autoNodeset)))
return -1;
if (vm->def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO) {
virConnectPtr conn;
virDomainObjPtr vm;
virQEMUDriverPtr driver;
- virBitmapPtr nodemask;
virQEMUDriverConfigPtr cfg;
};
static int qemuProcessHook(void *data)
{
struct qemuProcessHookData *h = data;
+ qemuDomainObjPrivatePtr priv = h->vm->privateData;
int ret = -1;
int fd;
virBitmapPtr nodeset = NULL;
mode = virDomainNumatuneGetMode(h->vm->def->numatune, -1);
nodeset = virDomainNumatuneGetNodeset(h->vm->def->numatune,
- h->nodemask, -1);
+ priv->autoNodeset, -1);
if (virNumaSetupMemoryPolicy(mode, nodeset) < 0)
goto cleanup;
if (virBitmapParse(nodeset, 0, &nodemask, VIR_DOMAIN_CPUMASK_LEN) < 0)
goto cleanup;
}
- hookData.nodemask = nodemask;
+ priv->autoNodeset = nodemask;
/* "volume" type disk's source must be translated before
* cgroup and security setting.
}
VIR_DEBUG("Setting up domain cgroup (if required)");
- if (qemuSetupCgroup(driver, vm, nodemask) < 0)
+ if (qemuSetupCgroup(driver, vm) < 0)
goto cleanup;
/* This must be done after cgroup placement to avoid resetting CPU
* affinity */
if (!vm->def->cputune.emulatorpin &&
- qemuProcessInitCpuAffinity(driver, vm, nodemask) < 0)
+ qemuProcessInitCpuAffinity(driver, vm) < 0)
goto cleanup;
VIR_DEBUG("Setting domain security labels");
goto cleanup;
VIR_DEBUG("Setting cgroup for emulator (if required)");
- if (qemuSetupCgroupForEmulator(driver, vm, nodemask) < 0)
+ if (qemuSetupCgroupForEmulator(driver, vm) < 0)
goto cleanup;
VIR_DEBUG("Setting affinity of emulator threads");
goto cleanup;
VIR_DEBUG("Setting up post-init cgroup restrictions");
- if (qemuSetupCpusetMems(vm, nodemask) < 0)
+ if (qemuSetupCpusetMems(vm) < 0)
goto cleanup;
VIR_DEBUG("Detecting VCPU PIDs");
* if we failed to initialize the now running VM. kill it off and
* pretend we never started it */
VIR_FREE(nodeset);
- virBitmapFree(nodemask);
virCommandFree(cmd);
VIR_FORCE_CLOSE(logfile);
if (priv->mon)