On 09/13/2012 04:52 PM, Michal Privoznik wrote: > 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 > Thanks, pushed. Martin -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list