if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET))
return 0;
- if (qemuSetupCpusetMems(vm, nodemask) < 0)
- goto cleanup;
-
if (vm->def->cpumask ||
(vm->def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO)) {
return ret;
}
+int
+qemuSetupCgroupPostInit(virDomainObjPtr vm,
+ virBitmapPtr nodemask)
+{
+ return qemuSetupCpusetMems(vm, nodemask);
+}
+
int
qemuSetupCgroupVcpuBW(virCgroupPtr cgroup,
unsigned long long period,
/*
* qemu_cgroup.h: QEMU cgroup management
*
- * Copyright (C) 2006-2007, 2009-2013 Red Hat, Inc.
+ * Copyright (C) 2006-2007, 2009-2014 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
int qemuSetupCgroup(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virBitmapPtr nodemask);
+int qemuSetupCgroupPostInit(virDomainObjPtr vm,
+ virBitmapPtr nodemask);
int qemuSetupCgroupVcpuBW(virCgroupPtr cgroup,
unsigned long long period,
long long quota);
if (!qemuProcessVerifyGuestCPU(driver, vm))
goto cleanup;
+ VIR_DEBUG("Setting up post-init cgroup restrictions");
+ if (qemuSetupCgroupPostInit(vm, nodemask) < 0)
+ goto cleanup;
+
VIR_DEBUG("Detecting VCPU PIDs");
if (qemuProcessDetectVcpuPIDs(driver, vm) < 0)
goto cleanup;