[v10 00/10] Add VT-d Posted-Interrupts support - IOMMU part

From: Feng Wu
Date: Tue Jun 09 2015 - 01:30:19 EST


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 was part of http://thread.gmane.org/gmane.linux.kernel.iommu/7708. To make things clear, send out IOMMU part here.

This patch-set is based on the lastest x86/apic branch of tip tree.

Divide the whole series which contain multiple components into three parts:
- Prerequisite changes to irq subsystem (already merged in tip tree x86/apic branch)
- IOMMU part (in this series)
- KVM and VFIO parts (will send out this part once the first two parts are accepted)

v9->v10:
* Fix the build error found by the 0-day test infrastructure.
- Define 'enum irq_remap_cap' outside '#ifdef CONFIG_IRQ_REMAP',
so we can use it for the paramenter of the dummy function
irq_remapping_cap() when CONFIG_IRQ_REMAP is not defined.
- Make function irq_remapping_cap() inline when CONFIG_IRQ_REMAP
is not defined.

v8->v9:
* Remove member "irte_pi_entry" in struct intel_ir_data.
* Some changes to the comments.

v7->v8:
* Save the irq mode (posted or remapped) of an IRTE in struct irq_2_iommu.
* Use this new mode to decide whether update the hardware when
modifying irte in intel_ir_set_affinity().

v6->v7:
* Add an static inline helper function set_irq_posting_cap() to set
the PI capability.
* Add some comments for the new member "ir_data->irte_pi_entry".

v5->v6:
* Extend 'struct irte' for VT-d Posted-Interrupts, combine remapped
and posted mode into one irte structure.

v4->v5:
* Abstract modify_irte() to accept two format of irte.

v3->v4:
* Change capability to a int variant flags instead of a function call.
* Add hotplug case for VT-d PI.

Feng Wu (8):
iommu: Add new member capability to struct irq_remap_ops
iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip
iommu, x86: Save the mode (posted or remapped) of an IRTE
iommu, x86: Avoid migrating VT-d posted interrupts
iommu, x86: Add cap_pi_support() to detect VT-d PI capability
iommu, x86: Setup Posted-Interrupts capability for Intel iommu
iommu, x86: Provide irq_remapping_cap() interface
iommu, x86: Properly handle posted interrupts for IOMMU hotplug

Thomas Gleixner (2):
iommu: dmar: Extend struct irte for VT-d Posted-Interrupts
iommu: dmar: Provide helper to copy shared irte fields

arch/x86/include/asm/irq_remapping.h | 11 +++++
drivers/iommu/intel_irq_remapping.c | 85 +++++++++++++++++++++++++++++++++++-
drivers/iommu/irq_remapping.c | 11 +++++
drivers/iommu/irq_remapping.h | 6 +++
include/linux/dmar.h | 82 +++++++++++++++++++++++++++-------
include/linux/intel-iommu.h | 1 +
6 files changed, 180 insertions(+), 16 deletions(-)

--
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/