]> git.ipfire.org Git - thirdparty/libvirt.git/commit
lxc: Resolve issue with GetScheduler APIs for non running domain
authorJohn Ferlan <jferlan@redhat.com>
Tue, 28 May 2013 19:00:59 +0000 (15:00 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Thu, 20 Jun 2013 13:38:47 +0000 (09:38 -0400)
commitca62fde8252b8509d78e0e61547d9ceeb8b516d4
tree7242410435c2da0fbff60ad65dc27e6d61447769
parent94c88b48371f8d81fbd274c97a49e5a13e4506cb
lxc: Resolve issue with GetScheduler APIs for non running domain

Cherry-picked from 38ada092d1ad5f27a24e511173308d568b6b085f

As a consequence of the cgroup layout changes from commit 'cfed9ad4', the
lxcDomainGetSchedulerParameters[Flags]()' and lxcGetSchedulerType() APIs
failed to return data for a non running domain.  This can be seen through
a 'virsh schedinfo <domain>' command which returns:

Scheduler      : Unknown
error: Requested operation is not valid: cgroup CPU controller is not mounted

Prior to that change a non running domain would return:

Scheduler      : posix
cpu_shares     : 0
vcpu_period    : 0
vcpu_quota     : 0
emulator_period: 0
emulator_quota : 0

This patch will restore the capability to return configuration only data
for a non running domain regardless of whether cgroups are available.

Conflicts:
src/lxc/lxc_driver.c

  * Resolved conflict by using former lxcCgroupHasController() rather than
    virCgroupHasController()
  * Needed to add the code to fetch the 'vm'
     vm = virDomainObjListFindByUUID(driver->domains, domain->uuid);
     if (vm == NULL) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("No such domain %s"), domain->uuid);
         goto cleanup;
     }
  * Used 'ret = strdup("posix");' rather than VIR_STRDUP(ret, "posix");
    and added the virReportOOMError(); on failure.
src/lxc/lxc_driver.c