[libvirt] [PATCH v2 3/3] add per cpu stats to all domain stats

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Mon Feb 6 09:11:11 UTC 2017



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




More information about the libvir-list mailing list