Messages in this thread | | | From | Feng Wu <> | Subject | [v7 0/4] prerequisite changes for VT-d posted-interrupts | Date | Tue, 19 May 2015 17:07:13 +0800 |
| |
VT-d Posted-Interrupts is an enhancement to CPU side Posted-Interrupt. With VT-d Posted-Interrupts enabled, external interrupts from direct-assigned devices can be delivered to guests without VMM intervention when guest is running in non-root mode.
You can find the VT-d Posted-Interrtups Spec. in the following URL: http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
This series implement some prerequisite parts for VT-d posted-interrupts. It was part of http://thread.gmane.org/gmane.linux.kernel.iommu/7708. To make things clear, I will divide the whole series which contain multiple components into three parts: - prerequisite changes (included in this series) - IOMMU part (v4 was reviewed, some comments need to be addressed) - KVM and VFIO parts (will send out this part once the first two parts are accepted)
This series is rebased on the x86-apic branch of tip tree.
v6 --> v7: [1/4]: - Add a KernelDoc comment for function irq_set_vcpu_affinity().
v5 --> v6: [3/4]: - Avoid the conditional in the exception handler smp_kvm_posted_intr_wakeup_ipi(). - Rename "wakeup_handler_callback" to "kvm_posted_intr_wakeup_handler".
[4/4] - Newly added in this series, show the statistics information for posted-interrupts.
v4 --> v5: - Move the declaration of "irq_chip_set_vcpu_affinity_parent()" to [1/3]. - Use the accessor to get "struct irq_data", "struct irq_chip". - Use "irq_get_desc_lock()" instead of "irq_to_desc()". - Declare "wakeup_handler_callback" in "asm/irq.h". - Use entering_ack_irq()/exiting_irq() in smp_kvm_posted_intr_wakeup_ipi().
Feng Wu (3): x86/irq: Implement irq_set_vcpu_affinity for pci_msi_ir_controller x86/irq: Define a global vector for VT-d Posted-Interrupts x86/irq: Show statistics information for posted-interrupts
Jiang Liu (1): genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU
arch/x86/include/asm/entry_arch.h | 2 ++ arch/x86/include/asm/hardirq.h | 1 + arch/x86/include/asm/hw_irq.h | 2 ++ arch/x86/include/asm/irq.h | 4 ++++ arch/x86/include/asm/irq_vectors.h | 1 + arch/x86/kernel/apic/msi.c | 1 + arch/x86/kernel/entry_64.S | 2 ++ arch/x86/kernel/irq.c | 43 ++++++++++++++++++++++++++++++++++++++ arch/x86/kernel/irqinit.c | 2 ++ include/linux/irq.h | 6 ++++++ kernel/irq/chip.c | 14 +++++++++++++ kernel/irq/manage.c | 31 +++++++++++++++++++++++++++ 12 files changed, 109 insertions(+)
-- 2.1.0
| |