[libvirt] [PATCHv2 00/14] vcpu - distinguish maximum from current

Eric Blake eblake at redhat.com
Wed Oct 13 17:53:56 UTC 2010


Version 1 had ACKs on most of the patches, but raised several points
(not the least of which was a lack of testing).  I've now done more
testing on xen than on qemu, so there may still be some qemu quirks.

Version 2 of the patch series; this addresses most of the points
from v1 (http://thread.gmane.org/gmane.comp.emulators.libvirt/28520).

I'm thinking that it is possible to backport _just_ patches 1 (add
current attribute), 7 (add maxvcpus to xml), and 12 (xen xm and sexpr
support) to make RHEL 5 xen support the distinction at the XML layer
without the expense of an API addition (that is, the existing dumpxml
API is sufficient to expose the core change in this patch series, and
the remaining patches in the series are just sugar to make it easier).
However, I still have to test that theory.

I also have one patch to write - namely, making xen support
virDomainSetVcpusFlags.  But I'd rather get the review going
on the rest of these patches, since it's now the last remaining
0.8.5 candidate feature.

Summary of changes in v2 (more details in each patch):
- rename flags from _ACTIVE/_PERSISTENT to _LIVE/_CONFIG for
  consistency with granularity of DeviceAttach
- first cut at xen implementation, dealing with fact that vcpu_avail in
  xen world is a bitmask rather than a count
- factor common flag checks out of drivers
- add 'virsh maxvcpus'
- add support for test:///default

I'll send an interdiff for how this series differs from v1, if that
helps in the review.

Eric Blake (14):
  vcpu: add current attribute to <vcpu> element
  vcpu: add new public API
  vcpu: define internal driver API
  vcpu: implement the public APIs
  vcpu: implement the remote protocol
  vcpu: make old API trivially wrap to new API
  vcpu: support maxvcpu in domain_conf
  vcpu: add virsh support
  vcpu: support all flags in test driver
  vcpu: improve vcpu support in qemu command line
  vcpu: complete vcpu support in qemu driver
  vcpu: improve vcpu support in xen command line
  vcpu: improve support for getting xen vcpu counts
  vcpu: remove dead xen code

 daemon/remote.c                              |   53 ++++++
 daemon/remote_dispatch_args.h                |    2 +
 daemon/remote_dispatch_prototypes.h          |   16 ++
 daemon/remote_dispatch_ret.h                 |    1 +
 daemon/remote_dispatch_table.h               |   10 +
 docs/formatdomain.html.in                    |    9 +-
 docs/schemas/domain.rng                      |    5 +
 include/libvirt/libvirt.h.in                 |   15 ++
 src/conf/domain_conf.c                       |   45 ++++-
 src/conf/domain_conf.h                       |    3 +-
 src/driver.h                                 |    9 +
 src/esx/esx_driver.c                         |   30 +++-
 src/esx/esx_vmx.c                            |   24 ++-
 src/libvirt.c                                |  140 ++++++++++++++-
 src/libvirt_public.syms                      |    2 +
 src/lxc/lxc_driver.c                         |    2 +
 src/opennebula/one_conf.c                    |    9 +-
 src/opennebula/one_driver.c                  |    2 +
 src/openvz/openvz_conf.c                     |    7 +-
 src/openvz/openvz_driver.c                   |   47 ++++-
 src/phyp/phyp_driver.c                       |   32 +++-
 src/qemu/qemu_conf.c                         |   19 ++-
 src/qemu/qemu_driver.c                       |  129 ++++++++++++--
 src/remote/remote_driver.c                   |   55 ++++++
 src/remote/remote_protocol.c                 |   33 ++++
 src/remote/remote_protocol.h                 |   26 +++
 src/remote/remote_protocol.x                 |   19 ++-
 src/remote_protocol-structs                  |   12 ++
 src/test/test_driver.c                       |  152 ++++++++++++++--
 src/uml/uml_driver.c                         |    2 +
 src/vbox/vbox_tmpl.c                         |   46 ++++-
 src/xen/proxy_internal.c                     |    1 -
 src/xen/xen_driver.c                         |   57 +++++-
 src/xen/xen_driver.h                         |    3 +-
 src/xen/xen_hypervisor.c                     |    1 -
 src/xen/xen_inotify.c                        |    1 -
 src/xen/xend_internal.c                      |   79 ++++++++-
 src/xen/xend_internal.h                      |    2 +
 src/xen/xm_internal.c                        |   65 ++++++-
 src/xen/xm_internal.h                        |    1 +
 src/xen/xs_internal.c                        |    1 -
 src/xenapi/xenapi_driver.c                   |   60 ++++++-
 src/xenapi/xenapi_utils.c                    |    4 +-
 tests/qemuargv2xmltest.c                     |    2 +
 tests/qemuxml2argvdata/qemuxml2argv-smp.args |    1 +
 tests/qemuxml2argvdata/qemuxml2argv-smp.xml  |   28 +++
 tests/qemuxml2argvtest.c                     |    2 +
 tests/qemuxml2xmltest.c                      |    2 +
 tests/sexpr2xmldata/sexpr2xml-pv-vcpus.sexpr |    1 +
 tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml   |   27 +++
 tests/sexpr2xmltest.c                        |    1 +
 tests/xmconfigdata/test-paravirt-vcpu.cfg    |   17 ++
 tests/xmconfigdata/test-paravirt-vcpu.xml    |   32 ++++
 tests/xmconfigtest.c                         |    1 +
 tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr |    1 +
 tests/xml2sexprdata/xml2sexpr-pv-vcpus.xml   |   22 +++
 tests/xml2sexprtest.c                        |    1 +
 tools/virsh.c                                |  247 +++++++++++++++++++++++---
 tools/virsh.pod                              |   38 ++++-
 59 files changed, 1511 insertions(+), 143 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-smp.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-smp.xml
 create mode 100644 tests/sexpr2xmldata/sexpr2xml-pv-vcpus.sexpr
 create mode 100644 tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
 create mode 100644 tests/xmconfigdata/test-paravirt-vcpu.cfg
 create mode 100644 tests/xmconfigdata/test-paravirt-vcpu.xml
 create mode 100644 tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr
 create mode 100644 tests/xml2sexprdata/xml2sexpr-pv-vcpus.xml

-- 
1.7.2.3




More information about the libvir-list mailing list