On 03.02.2017 19:09, Peter Krempa wrote:
On Thu, Feb 02, 2017 at 14:09:33 +0300, Nikolay Shirokovskiy wrote:
> Add per host cpu info provided in virDomainGetCPUStats to the
> stats provided in virConnectGetAllDomainStats. Namely:
>
> "cpu.count" - number of host cpus
> "cpu.<num>.time" - total cpu time spent for this domain in
nanoseconds
> "cpu.<num>.vtime" - time spent in virtual cpu threads for this
domain
> in nanoseconds
> ---
> docs/news.xml | 9 ++++++
> include/libvirt/libvirt-domain.h | 1 +
> src/libvirt-domain.c | 7 +++++
> src/qemu/qemu_driver.c | 64 ++++++++++++++++++++++++++++++++++++++++
> tools/virsh-domain-monitor.c | 7 +++++
> tools/virsh.pod | 11 +++++--
> 6 files changed, 97 insertions(+), 2 deletions(-)
>
[snip]
>
> static int
> +qemuDomainGetStatsPerCpu(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
> + virDomainObjPtr dom,
> + virDomainStatsRecordPtr record,
> + int *maxparams,
> + unsigned int privflags ATTRIBUTE_UNUSED)
> +{
> + qemuDomainObjPrivatePtr priv = dom->privateData;
> + virCgroupCpuStats stats = {0};
> + virBitmapPtr guestvcpus = NULL;
> + char param_name[VIR_TYPED_PARAM_FIELD_LENGTH];
> + int ncpus;
> + size_t i;
> + int ret = -1;
> +
> + if (qemuDomainHasVcpuPids(dom))
> + guestvcpus = virDomainDefGetOnlineVcpumap(dom->def);
Does it make sense to do this if we don't have the PIDs? Without that
it's usually one thread anyways.
It is on par with qemuDomainGetCPUStats.
I don't quite understand you. You mean even if not qemuDomainHasVcpuPids
we can gather cpu.<num>.vtime?
Nikolay