[PATCH 00/34] Prepare for specific vcpu hot(un)plug - part 1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series is getting rather big. The target is to refactor the way libvirt
stores info about vCPUs into a single structure (okay, two structures for the
qemu driver. Part 1 is not yet completely there, well, not even halfway.

Future work will involve fully allocating priv->vcpupids to the maxcpus size
and moving around few other bits of data in cputune and other parts to the new
structure. Yet another follow up work is then to add new APIs for vCPU hotplug,
which will enable adding vCPUs sparsely (useful if you have NUMA).

Since this refactor will result in tracking all vcpu-related data in one struct,
the result will automagically fix a few bugs where we'd end up with invalid
config after vcpu unplug or other operations.

The changes can also be fetched at:

  git fetch git://pipo.sk/pipo/libvirt.git vcpu-refactor-part-1

Peter Krempa (34):
  hyperv: Allocate 'def' via virDomainDefNew
  openvz: Refactor extraction of vcpu count
  phyp: Refactor extraction of vcpu count
  xenapi: Refactor extraction of vcpu count
  conf: Use local copy of maxvcpus in virDomainVcpuParse
  conf: Drop useless check when parsing cpu scheduler info
  conf: Replace writes to def->maxvcpus with accessor
  conf: Extract update of vcpu count if maxvcpus is decreased
  conf: Add helper to check whether domain has offline vCPUs
  conf: Assume at least 1 maximum and current vCPU for every conf
  conf: Replace read access to def->maxvcpus with accessor
  conf: Replace writes to def->vcpus with accessor
  conf: Move vcpu count check into helper
  conf: Replace read accesses to def->vcpus with accessor
  conf: Turn def->maxvcpus into size_t
  qemu: domain: Add helper to access vm->privateData->agent
  qemu: Extract vCPU onlining/offlining via agent into a separate
    function
  qemu: qemuDomainSetVcpusAgent: re-check agent before calling it the
    again
  qemu: Split up vCPU hotplug and hotunplug
  qemu: cpu hotplug: Fix error handling logic
  qemu: monitor: Explain logic of qemuMonitorGetCPUInfo
  qemu: monitor: Remove weird return values from qemuMonitorSetCPU
  qemu: cpu hotplug: Move loops to qemuDomainSetVcpusFlags
  qemu: Refactor qemuDomainHotplugVcpus
  qemu: refactor qemuDomainHotunplugVcpus
  conf: turn def->vcpus into a structure
  conf: ABI: Split up and improve vcpu info ABI checking
  conf: Add helper to get pointer to a certain vCPU definition
  qemu: cgroup: Remove now unreachable check
  qemu: Drop checking vcpu threads in emulator bandwidth getter/setter
  qemu: Replace checking for vcpu<->pid mapping availability with a
    helper
  qemu: Add helper to retrieve vCPU pid
  qemu: driver: Refactor qemuDomainHelperGetVcpus
  qemu: cgroup: Don't use priv->ncpupids to iterate domain vCPUs

 src/conf/domain_audit.c      |   2 +-
 src/conf/domain_conf.c       | 207 ++++++++++++++---
 src/conf/domain_conf.h       |  22 +-
 src/hyperv/hyperv_driver.c   |  12 +-
 src/libvirt_private.syms     |   6 +
 src/libxl/libxl_conf.c       |   6 +-
 src/libxl/libxl_driver.c     |  38 +--
 src/lxc/lxc_controller.c     |   2 +-
 src/lxc/lxc_driver.c         |   2 +-
 src/lxc/lxc_native.c         |   5 -
 src/openvz/openvz_conf.c     |  14 +-
 src/openvz/openvz_driver.c   |  31 +--
 src/phyp/phyp_driver.c       |  15 +-
 src/qemu/qemu_cgroup.c       |  42 ++--
 src/qemu/qemu_command.c      |  25 +-
 src/qemu/qemu_domain.c       |  47 ++++
 src/qemu/qemu_domain.h       |   4 +
 src/qemu/qemu_driver.c       | 538 ++++++++++++++++++++++---------------------
 src/qemu/qemu_monitor.c      |   9 +
 src/qemu/qemu_monitor_json.c |   4 -
 src/qemu/qemu_monitor_text.c |  22 +-
 src/qemu/qemu_process.c      |  22 +-
 src/test/test_driver.c       |  38 +--
 src/uml/uml_driver.c         |   2 +-
 src/vbox/vbox_common.c       |  19 +-
 src/vmware/vmware_driver.c   |   2 +-
 src/vmx/vmx.c                |  34 +--
 src/vz/vz_driver.c           |   2 +-
 src/vz/vz_sdk.c              |   9 +-
 src/xen/xm_internal.c        |  19 +-
 src/xenapi/xenapi_driver.c   |  11 +-
 src/xenapi/xenapi_utils.c    |   6 +-
 src/xenconfig/xen_common.c   |  16 +-
 src/xenconfig/xen_sxpr.c     |  26 ++-
 tests/openvzutilstest.c      |   2 +-
 35 files changed, 783 insertions(+), 478 deletions(-)

-- 
2.6.2

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux