• Jiang Liu's avatar
    genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU · 0a4377de
    Jiang Liu authored
    With Posted-Interrupts support in Intel CPU and IOMMU, an external
    interrupt from assigned-devices could be directly delivered to a
    virtual CPU in a virtual machine. Instead of hacking KVM and Intel
    IOMMU drivers, we propose a platform independent interface to target
    an interrupt to a specific virtual CPU in a virtual machine, or set
    virtual CPU affinity for an interrupt.
    
    By adopting this new interface and the hierarchy irqdomain, we could
    easily support posted-interrupts on Intel platforms, and also provide
    flexible enough interfaces for other platforms to support similar
    features.
    
    Here is the usage scenario for this interface:
    Guest update MSI/MSI-X interrupt configuration
            -->QEMU and KVM handle this
            -->KVM call this interface (passing posted interrupts descriptor
               and guest vector)
            -->irq core will transfer the control to IOMMU
            -->IOMMU will do the real work of updating IRTE (IRTE has new
               format for VT-d Posted-Interrupts)
    Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
    Signed-off-by: default avatarFeng Wu <feng.wu@intel.com>
    Link: http://lkml.kernel.org/r/1432026437-16560-2-git-send-email-feng.wu@intel.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    0a4377de
chip.c 25 KB