On 09/24/2013 10:43 AM, Peter Krempa wrote: > The linux kernel recently added support for paravirtual spinlock > handling to avoid performance regressions on overcomitted hosts. This > feature needs to be turned in the hypervisor so that the guest OS is s/turned in/turned on in/ > notified about the possible support. > > This patch adds a new feature "paravirt-spinlock" to the XML and > supporting code to enable the "kvm_pv_unhalt" pseudoCPU feature in qemu. I'm guessing we can't split those without compiler warnings about not all enum values being handled in the switch. > > https://bugzilla.redhat.com/show_bug.cgi?id=1008989 > --- > This patch is RFC as qemu didn't add this to the upstream repo yet: Now upstream: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=f010bc6 > > Pull request: > http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg03385.html > > Original thread: > http://lists.nongnu.org/archive/html/qemu-devel/2013-09/msg03095.html > > I'm sending it to get review feedback but will push it only after qemu will > have it. > > > docs/formatdomain.html.in | 7 ++++++ > docs/schemas/domaincommon.rng | 10 ++++++++- > src/conf/domain_conf.c | 20 ++++++++++++++++- > src/conf/domain_conf.h | 1 + > src/qemu/qemu_command.c | 14 ++++++++++++ > .../qemuxml2argv-pv-spinlock-disabled.args | 5 +++++ > .../qemuxml2argv-pv-spinlock-disabled.xml | 26 ++++++++++++++++++++++ > .../qemuxml2argv-pv-spinlock-enabled.args | 5 +++++ > .../qemuxml2argv-pv-spinlock-enabled.xml | 26 ++++++++++++++++++++++ > tests/qemuxml2argvtest.c | 2 ++ > tests/qemuxml2xmltest.c | 2 ++ > 11 files changed, 116 insertions(+), 2 deletions(-) > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pv-spinlock-disabled.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pv-spinlock-disabled.xml > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pv-spinlock-enabled.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pv-spinlock-enabled.xml > > @@ -16742,6 +16759,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, > case VIR_DOMAIN_FEATURE_HAP: > case VIR_DOMAIN_FEATURE_VIRIDIAN: > case VIR_DOMAIN_FEATURE_PRIVNET: > + case VIR_DOMAIN_FEATURE_PARAVIRT_SPINLOCK: > switch ((enum virDomainFeatureState) def->features[i]) { > case VIR_DOMAIN_FEATURE_STATE_ON: > /* output just the element */ Unlike the features above, this one can actually be turned off. Jan -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list