• Lan Tianyu's avatar
    iommu/hyper-v: Add Hyper-V stub IOMMU driver · 29217a47
    Lan Tianyu authored
    On the bare metal, enabling X2APIC mode requires interrupt remapping
    function which helps to deliver irq to cpu with 32-bit APIC ID.
    Hyper-V doesn't provide interrupt remapping function so far and Hyper-V
    MSI protocol already supports to deliver interrupt to the CPU whose
    virtual processor index is more than 255. IO-APIC interrupt still has
    8-bit APIC ID limitation.
    
    This patch is to add Hyper-V stub IOMMU driver in order to enable
    X2APIC mode successfully in Hyper-V Linux guest. The driver returns X2APIC
    interrupt remapping capability when X2APIC mode is available. Otherwise,
    it creates a Hyper-V irq domain to limit IO-APIC interrupts' affinity
    and make sure cpus assigned with IO-APIC interrupt have 8-bit APIC ID.
    
    Define 24 IO-APIC remapping entries because Hyper-V only expose one
    single IO-APIC and one IO-APIC has 24 pins according IO-APIC spec(
    https://pdos.csail.mit.edu/6.828/2016/readings/ia32/ioapic.pdf).
    Reviewed-by: default avatarMichael Kelley <mikelley@microsoft.com>
    Signed-off-by: default avatarLan Tianyu <Tianyu.Lan@microsoft.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    29217a47
hyperv-iommu.c 5.27 KB