On 13.09.2012 16:12, Martin Kletzander wrote: > This patch adds full support for EOI setting for domains. Because this > is CPU feature (flag), the model needs to be added even when it's not > specified. Fortunately this problem was already solved with kvmclock, > so this patch simply abuses that. > > And due to the size of the patch (17 lines) I dared to include the tests. > --- > src/qemu/qemu_command.c | 17 +++++++++++++ > .../qemuxml2argv-cpu-eoi-disabled.args | 4 ++++ > .../qemuxml2argv-cpu-eoi-disabled.xml | 28 ++++++++++++++++++++++ > .../qemuxml2argv-cpu-eoi-enabled.args | 4 ++++ > .../qemuxml2argv-cpu-eoi-enabled.xml | 28 ++++++++++++++++++++++ > .../qemuxml2argv-eoi-disabled.args | 4 ++++ > .../qemuxml2argvdata/qemuxml2argv-eoi-disabled.xml | 25 +++++++++++++++++++ > .../qemuxml2argvdata/qemuxml2argv-eoi-enabled.args | 4 ++++ > .../qemuxml2argvdata/qemuxml2argv-eoi-enabled.xml | 25 +++++++++++++++++++ > tests/qemuxml2argvtest.c | 5 ++++ > tests/qemuxml2xmltest.c | 6 +++++ > 11 files changed, 150 insertions(+) > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-disabled.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-disabled.xml > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-enabled.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-cpu-eoi-enabled.xml > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-eoi-disabled.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-eoi-disabled.xml > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-eoi-enabled.args > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-eoi-enabled.xml > > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c > index cd4ee93..4aed8f6 100644 > --- a/src/qemu/qemu_command.c > +++ b/src/qemu/qemu_command.c > @@ -4193,6 +4193,18 @@ qemuBuildCpuArgStr(const struct qemud_driver *driver, > } > } > > + if (def->apic_eoi) { > + char sign; > + if (def->apic_eoi == VIR_DOMAIN_APIC_EOI_ON) > + sign = '+'; > + else > + sign = '-'; > + > + virBufferAsprintf(&buf, "%s,%ckvm_pv_eoi", > + have_cpu ? "" : default_model, > + sign); > + } > + > if (virBufferError(&buf)) > goto no_memory; > > @@ -7650,6 +7662,11 @@ qemuParseCommandLineCPU(virDomainDefPtr dom, > } > dom->clock.timers[i]->present = present; > ret = 0; > + } else if (STREQ(feature, "kvm_pv_eoi")) { > + if (policy == VIR_CPU_FEATURE_REQUIRE) > + dom->apic_eoi = VIR_DOMAIN_APIC_EOI_ON; > + else > + dom->apic_eoi = VIR_DOMAIN_APIC_EOI_OFF; Hey, this is nice. I feel like we are forgetting this part sometimes. > } else { > if (!cpu) { > if (!(cpu = qemuInitGuestCPU(dom))) ACK Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list