[libvirt] [PATCH 00/34] vcpu info storage refactors - part 2

Peter Krempa pkrempa at redhat.com
Thu Jan 14 16:26:48 UTC 2016


This is a continuation of the previous patches that change how we store info
related to vcpus.

In this series the vcpupin and vcpusched info is moved to the vcpu structure
which makes for a much simpler storage and handling of the data.

This series also fixes numerous bugs in the vcpu code.

Peter Krempa (34):
  qemu: process: refactor and rename qemuValidateCpuMax to
    qemuValidateCpuCount
  qemu: process: Disallow VMs with 0 vcpus
  vz: Fix invalid iteration of def->cputune.vcpupin
  qemu: don't iterate vcpus using priv->nvcpupids in
    qemuProcessSetSchedParams
  (qemu|lxc)DomainGetCPUStats: Clean up
  cgroup: Clean up virCgroupGetPercpuStats
  conf: Add helper to retrieve bitmap of active vcpus for a definition
  virsh: cpu-stats: Extract common printing code into a function
  virsh: cpu-stats: Remove unneeded flags
  qemu: Don't use priv->ncpus to iterate cgroup setting
  cgroup: Prepare for sparse vCPU topologies in virCgroupGetPercpuStats
  qemu: cpu hotplug: Set vcpu state directly in the new structure
  qemu: Move and rename qemuProcessDetectVcpuPIDs to
    qemuDomainDetectVcpuPids
  qemu: domain: Prepare qemuDomainDetectVcpuPids for reuse
  qemu: Reuse qemuDomainDetectVcpuPids in cpu hot(un)plug
  conf: Don't copy def->cpumask into cpu pinning info
  tests: qemuxml2xml: Order pinning information numerically
  conf: Split out logic to determine whether cpupin was provided
  test: Touch up error message when attempting to pin invalid vCPU
  conf: Store cpu pinning data in def->vcpus
  conf: remove unused cpu pinning helpers and data structures
  conf: disallow empty cpusets for vcpu pinning when parsing XML
  conf: disallow empty cpuset for emulatorpin
  conf: Extract code that formats <cputune>
  util: buffer: Sanitize comment for virBufferAddBuffer
  util: bitmap: Introduce bitmap subtraction
  conf: Add helper to return a bitmap of active iothread ids
  conf: Extract code for parsing thread resource scheduler info
  conf: Don't store vcpusched orthogonally to other vcpu info
  conf: Fix how iothread scheduler info is stored
  qemu: vcpu: Aggregate code to set vCPU tuning
  qemu: vcpu: Reuse qemuProcessSetupVcpu in vcpu hotplug
  qemu: iothread: Aggregate code to set IOTrhead tuning
  qemu: iothread: Reuse qemuProcessSetupIOThread in iothread hotplug

 src/conf/domain_conf.c                             | 948 +++++++++++----------
 src/conf/domain_conf.h                             |  48 +-
 src/libvirt_private.syms                           |  10 +-
 src/libxl/libxl_domain.c                           |  20 +-
 src/libxl/libxl_driver.c                           |  41 +-
 src/lxc/lxc_driver.c                               |   5 +-
 src/qemu/qemu_cgroup.c                             | 198 -----
 src/qemu/qemu_cgroup.h                             |   2 -
 src/qemu/qemu_domain.c                             |  81 ++
 src/qemu/qemu_domain.h                             |   2 +
 src/qemu/qemu_driver.c                             | 417 +++------
 src/qemu/qemu_process.c                            | 479 ++++++-----
 src/qemu/qemu_process.h                            |   6 +
 src/test/test_driver.c                             |  50 +-
 src/util/virbitmap.c                               |  21 +
 src/util/virbitmap.h                               |   3 +
 src/util/virbuffer.c                               |   3 +-
 src/util/vircgroup.c                               |  52 +-
 src/util/vircgroup.h                               |   3 +-
 src/vz/vz_sdk.c                                    |   6 +-
 .../qemuxml2argv-cputune-iothreads.xml             |   2 +-
 .../qemuxml2xmlout-cputune-iothreads.xml           |   2 +-
 .../qemuxml2xmlout-cputune-iothreadsched.xml       |   3 +-
 tests/vcpupin                                      |   2 +-
 tests/virbitmaptest.c                              |  55 ++
 tests/vircgrouptest.c                              |   2 +-
 tools/virsh-domain.c                               |  66 +-
 27 files changed, 1165 insertions(+), 1362 deletions(-)

-- 
2.6.2




More information about the libvir-list mailing list