• E
    cpustat: fix regression when cpus are offline · 4fbf322f
    Eric Blake 提交于
    It turns out that the cpuacct results properly account for offline
    cpus, and always returns results for every possible cpu, not just
    the online ones.  So there is no need to check the map of online
    cpus in the first place, merely only a need to know the maximum
    possible cpu.  Meanwhile, virNodeGetCPUBitmap had a subtle change
    from returning the maximum id to instead returning the width of
    the bitmap (one larger than the maximum id) in commit 2f4c5338,
    which made this code encounter some off-by-one logic leading to
    bad error messages when a cpu was offline:
    
    $ virsh cpu-stats dom
    error: Failed to virDomainGetCPUStats()
    
    error: An error occurred, but the cause is unknown
    
    Cleaning this up unraveled a chain of other unused variables.
    
    * src/qemu/qemu_driver.c (qemuDomainGetPercpuStats): Drop
    pointless check for cpumap changes, and use correct number of
    cpus.  Simplify signature.
    (qemuDomainGetCPUStats): Adjust caller.
    * src/nodeinfo.h (nodeGetCPUCount): New prototype.
    (nodeGetCPUBitmap): Drop unused parameter.
    * src/nodeinfo.c (nodeGetCPUBitmap): Likewise.
    (nodeGetCPUMap): Adjust caller.
    (nodeGetCPUCount): New function.
    * src/libvirt_private.syms (nodeinfo.h): Export it.
    4fbf322f
qemu_driver.c 450.4 KB