• P
    x86: ioapic: add support for explicit EOI · 20fd4b7b
    Peter Xu 提交于
    Some old Linux kernels (upstream before v4.0), or any released RHEL
    kernels has problem in sending APIC EOI when IR is enabled. Meanwhile,
    many of them only support explicit EOI for IOAPIC, which is only
    introduced in IOAPIC version 0x20. This patch provide a way to boost
    QEMU IOAPIC to version 0x20, in order for QEMU to correctly receive EOI
    messages.
    
    Without boosting IOAPIC version to 0x20, kernels before commit d32932d
    ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces")
    will have trouble enabling both IR and level-triggered interrupt devices
    (like e1000).
    
    To upgrade IOAPIC to version 0x20, we need to specify:
    
      -global ioapic.version=0x20
    
    To be compatible with old systems, 0x11 will still be the default IOAPIC
    version. Here 0x11 and 0x20 are the only versions to be supported.
    
    One thing to mention: this patch only applies to emulated IOAPIC. It
    does not affect kernel IOAPIC behavior.
    Signed-off-by: NPeter Xu <peterx@redhat.com>
    Message-Id: <1470059959-372-1-git-send-email-peterx@redhat.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    20fd4b7b
ioapic.c 13.2 KB