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