On 08/07/2016 18:01, Radim Krčmář wrote: > 2016-07-05 16:19+0800, Peter Xu: >> This is v11 of Intel IR work. It is rebased to mst's branch >> "tags/for_upstream", commit: >> >> "278a2a2 vmw_pvscsi: remove unnecessary internal msi state flag" >> >> This series mainly fixed several issues in v10 review comments, fixed >> one bug with RHEL guests, added acked-by for Paolo, and a fresh new >> rebase as mentioned above. >> >> To make it fast, I only did quick tests for this versiont. But at >> least it should cover basic functions like: IOAPIC, MSI, multiple >> vcpus, different guests (4.7 upstream and rhel 7.2), vhost, split/off >> irqchips. More tests to be done. >> >> Meanwhile, there are several pending issues to be solved, which is >> queued in my todo list and I'll continue the work after this series is >> merged. >> >> Online branch: >> >> https://github.com/xzpeter/qemu vtd-intr-v11 >> >> Please review, thanks. > > Testing found only one bug: > > The patchset doesn't work with if you have 16 APICs with IDs 0-15 and > then some more, because KVM has hacked x2APIC support that translates > logical interrupt with destination 0xff (first cluster of 16 VCPUs) into > a broadcast (also works with lowest-priority) and then picks VCPU > 16 > as the destination, leading to messages like > > do_IRQ: 17.209 No irq handler for vector > > The fun part is that this is how KVM wanted to behave, when it allowed > x2apic with unremapped ioapic. :( > KVM could either finally remove x2apic without IR or add a way in which > userspace could say whether an interrupt is x2APIC or not. > > QEMU cannot do anything to work around the bug, so I think it would be > best to disable EIM for now.
What's the state of QEMU support for KVM_CAP_X2APIC_API? If it can make it for hard freeze, it's not a showstopper for Peter's patch. Thanks, Paolo