[libvirt] [PATCH 4/7] Place every QEMU guest in a private cgroup

Daniel Veillard veillard at redhat.com
Fri Jul 17 14:55:14 UTC 2009


On Fri, Jul 17, 2009 at 09:04:26AM -0400, Daniel P. Berrange wrote:
> * src/qemu_driver.c: Place guest in cgroup upon startup. Remove
>   cgroup upon shutdown
> ---
>  src/qemu_driver.c |  105 +++++++++++++++++++++++++++++++++++++++++++++++++----
[...]

> +        virReportSystemError(conn, -rc,
> +                             _("Unable to create cgroup for %s"), vm->def->name);

  hum, there is a missing line split here, I think I saw one similar in
  patch 3 but it was less obvious


> +static int qemuAddToCgroup(virDomainDefPtr def)
> +{
> +    virCgroupPtr cgroup = NULL;
> +    int rc;
> +
> +    if (virCgroupHaveSupport() != 0)
> +        return 0; /* Not supported, so claim success */
> +
> +    rc = virCgroupForDomain(def, "qemu", &cgroup);
> +    if (rc != 0) {
> +        virReportSystemError(NULL, -rc, _("unable to find cgroup for domain %s"), def->name);
> +        return -1;
> +    }
> +
> +    rc = virCgroupAddTask(cgroup, getpid());
> +    if (rc != 0) {
> +        virReportSystemError(NULL, -rc, _("unable to add domain %s task %d to cgroup"), def->name, getpid());
> +        virCgroupFree(&cgroup);
> +        return -1;
> +    }

  A couple more, and I would define itn ret = 0; and factorize the
  cleanup on exit

> +
> +    virCgroupFree(&cgroup);
> +    return 0;
> +}
> +
> +
[...]
>  
> -struct gemudHookData {
> -        virConnectPtr conn;
> -        virDomainObjPtr vm;
> -        struct qemud_driver *driver;
> +struct qemudHookData {
> +    virConnectPtr conn;
> +    virDomainObjPtr vm;
> +    struct qemud_driver *driver;
>  };

  took me a while to spot that gemu turned in qemu


  Again not a cgroup expert but this looks okay to me, ACK

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