• Gabriel L. Somlo's avatar
    kvm: x86: ignore ioapic polarity · 100943c5
    Gabriel L. Somlo authored
    Both QEMU and KVM have already accumulated a significant number of
    optimizations based on the hard-coded assumption that ioapic polarity
    will always use the ActiveHigh convention, where the logical and
    physical states of level-triggered irq lines always match (i.e.,
    active(asserted) == high == 1, inactive == low == 0). QEMU guests
    are expected to follow directions given via ACPI and configure the
    ioapic with polarity 0 (ActiveHigh). However, even when misbehaving
    guests (e.g. OS X <= 10.9) set the ioapic polarity to 1 (ActiveLow),
    QEMU will still use the ActiveHigh signaling convention when
    interfacing with KVM.
    
    This patch modifies KVM to completely ignore ioapic polarity as set by
    the guest OS, enabling misbehaving guests to work alongside those which
    comply with the ActiveHigh polarity specified by QEMU's ACPI tables.
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarGabriel L. Somlo <somlo@cmu.edu>
    [Move documentation to KVM_IRQ_LINE, add ia64. - Paolo]
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    100943c5
kvm.h 31.6 KB