[libvirt] PATCH: 1/3: Put each QEMU guest in a cgroup
Daniel Veillard
veillard at redhat.com
Fri Feb 27 15:27:13 UTC 2009
On Thu, Feb 26, 2009 at 04:38:25PM +0000, Daniel P. Berrange wrote:
> This patch sets up the cgroups for QEMU instances. It creates a cgroup
> when starting a guest, uses an exec hook to place the process into the
> correct cgroup, and cleans up empty cgroup when the QEMU process shuts
> down.
> @@ -1185,8 +1261,11 @@ static int qemudStartVMDaemon(virConnect
> emulator = vm->def->emulator;
> if (!emulator)
> emulator = virDomainDefDefaultEmulator(conn, vm->def, driver->caps);
> - if (!emulator)
> - return -1;
> + if (!emulator) {
> + close(vm->logfile);
> + vm->logfile = -1;
> + return -1;
> + }
>
> /* Make sure the binary we are about to try exec'ing exists.
> * Technically we could catch the exec() failure, but that's
> @@ -1196,6 +1275,8 @@ static int qemudStartVMDaemon(virConnect
> virReportSystemError(conn, errno,
> _("Cannot find QEMU binary %s"),
> emulator);
> + close(vm->logfile);
> + vm->logfile = -1;
> return -1;
> }
>
> @@ -1205,7 +1286,14 @@ static int qemudStartVMDaemon(virConnect
> qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
> _("Cannot determine QEMU argv syntax %s"),
> emulator);
> - return -1;
> + close(vm->logfile);
> + vm->logfile = -1;
> + return -1;
> + }
> +
> + if (qemuSetupCgroup(conn, driver, vm) < 0) {
> + close(vm->logfile);
> + vm->logfile = -1;
> }
>
> vm->def->id = driver->nextvmid++;
Seems the logfile changes are cleanups not directly related,
but yes this all looks sounds to me,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list