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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list