Hello, Following series attempts to solve the issue with IO-APIC edge triggered interrupts seeing an inconsistent RTE or IRTE when injected while being migrated.
It's currently RFC because some patches have post commit message notes, and because I'm not sure if patch 1 is really needed. I originally had the idea of suggesting to only backport patch 1 in order to fix the issue in older releases, while leaving the more complex (and thus error prone) IOMMU changes in unstable. Note however that patch 1 is just a workaround to prevent interrupts seeing inconsistent entries while being updated, masking the entry just makes the warning go away, but the interrupt will be lost. Thanks, Roger. Roger Pau Monne (6): x86/ioapic: set disable hook for masking edge interrupts x86/ioapic: add a raw field to RTE struct x86/ioapic: RTE modifications must use ioapic_write_entry x86/iommu: pass full IO-APIC RTE for remapping table update amd/iommu: atomically update remapping entries when possible x86/ioapic: mask entry while updating xen/arch/x86/include/asm/io_apic.h | 72 ++++++------- xen/arch/x86/include/asm/iommu.h | 3 +- xen/arch/x86/io_apic.c | 81 ++++++++++----- xen/drivers/passthrough/amd/iommu.h | 2 +- xen/drivers/passthrough/amd/iommu_intr.c | 115 +++++++-------------- xen/drivers/passthrough/vtd/extern.h | 2 +- xen/drivers/passthrough/vtd/intremap.c | 125 +++++++++++------------ xen/drivers/passthrough/x86/iommu.c | 4 +- xen/include/xen/iommu.h | 3 +- 9 files changed, 195 insertions(+), 212 deletions(-) -- 2.35.1