These patches resolve an issue seen using 'virsh schedinfo <domain>' on a
non running domain that have been present since 1.0.4 as a result of the
cgroup infrastructure changes:
https://www.redhat.com/archives/libvir-list/2013-April/msg00783.html
The exact commit id that caused the issue is listed in each of the commit
messages. I used git bisect to determine, although it was tricky because
the TPM changes were made around the same time and required commit '8b934a5c'
to be applied in order to actually see domains on my host.
Prior to the changes the "CFS Bandwidth" data was obtained since the driver
cgroup was mounted as opposed to the changes from the above set which mount
cgroups when the domain is running.
The result for 'virsh schedinfo <domain>' for a non running guest is to
return the configuration data for default, --config, and --current options.
The --live option reports a failure. For a running guest, default, --live,
and --current report values from cgroup, while --config reports only the
configuration values.
This issue also affects the libvirt-cim code in how it defines QEMU domains.
Fortunately it only looks for the "cpu_shares" value.
Difference to v1:
- In the [qemu|lxc]DomainGetSchedulerType() API's, rather than check for
priv->cgroup, check if the domain is running and return defaults if not
- In the [qemu|lxc]DomainGetSchedulerParametersFlags() API's, if we're
only returning configuration data, then don't gate the result returned
on the CFS bandwidth data cgroup availability.
qemu: Resolve issue with GetScheduler APIs for non running domain
lxc: Resolve issue with GetScheduler APIs for non running domain
src/lxc/lxc_driver.c | 11 ++++++++++-
src/qemu/qemu_driver.c | 11 ++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)
--
1.8.1.4