Messages in this thread | | | Subject | Re: [PART2 PATCH v7 00/12] iommu/AMD: Introduce IOMMU AVIC support | From | Suravee Suthikulpanit <> | Date | Mon, 29 Aug 2016 11:53:28 +0700 |
| |
Hi Joerg, Radim
Any other concerns?
Thanks, Suravee
On 8/24/16 01:52, Suravee Suthikulpanit wrote: > From: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> > > CHANGES FROM V6 > =============== > > Per Radim: > * No longer expose struct amd_ir_data to SVM. > * Introduce struct amd_svm_iommu_ir (amd_ir_data wrapper). > * Fix logic to manage ir_list where we need to remove > the posted interrupt from the previous ir_list before > mapping it to a new vcpu. Tested running smp VM with: > - Using irqbalance > - No irqbalance (manually set /proc/irq/smp_affinity) > > Misc: > * 08/12: Only set ga_root_ptr in amd_ir_set_vcpu_affinity(). > * 10/12: Fix bug in #define AVIC_GATAG_TO_VCPUID. > > GITHUB > ====== > Latest git tree can be found at: > http://github.com/ssuthiku/linux.git avic_part2_v7 > > OVERVIEW > ======== > This patch set is the second part of the two-part patch series to introduce > the new AMD Advance Virtual Interrupt Controller (AVIC) support. > > In addition to the SVM AVIC, AMD IOMMU also extends the AVIC capability > to allow I/O interrupts injection directly into the virtualized guest > local APIC without the need for hypervisor intervention. > > This patch series introduces a new hardware interrupt remapping (IR) mode > in AMD IOMMU driver, the Guest Virtual APIC (GA) mode. This is in contrast > to the existing "legacy" mode. The IR mode can be specified with a new > kernel parameter: > > amd_iommu_guest_ir=[vapic (default) | legacy] > > When enabling GA mode, the AMD IOMMU driver will configure device interrupt > remapping in GA mode when possible (i.e. SVM AVIC must be enabled, and if > the interrupt types are supported). Otherewise, the driver will fallback > to using the legacy IR mode. > > This patch series also introduces new interfaces between SVM and IOMMU > to allow: > * SVM driver to communicate to IOMMU with updated vcpu scheduling > information. > * IOMMU driver to notify SVM driver to schedule vcpu on to physical core > handle IOMMU GALog entry. > > DOCUMENTATIONS > ============== > More information about SVM AVIC can be found in the > AMD64 Architecture Programmer’s Manual Volume 2 - System Programming. > > http://support.amd.com/TechDocs/24593.pdf > > More information about IOMMU AVIC can be found int the > AMD I/O Virtualization Technology (IOMMU) Specification - Rev 2.62. > > http://support.amd.com/TechDocs/48882_IOMMU.pdf > > Any feedback and comments are very much appreciated. > > Thank you, > Suravee > > Suravee Suthikulpanit (12): > iommu/amd: Detect and enable guest vAPIC support > iommu/amd: Move and introduce new IRTE-related unions and structures > iommu/amd: Introduce interrupt remapping ops structure > iommu/amd: Add support for multiple IRTE formats > iommu/amd: Detect and initialize guest vAPIC log > iommu/amd: Adding GALOG interrupt handler > iommu/amd: Introduce amd_iommu_update_ga() > iommu/amd: Implements irq_set_vcpu_affinity() hook to setup vapic mode > for pass-through devices > iommu/amd: Enable vAPIC interrupt remapping mode by default > svm: Introduces AVIC per-VM ID > svm: Introduce AMD IOMMU avic_ga_log_notifier > svm: Implements update_pi_irte hook to setup posted interrupt > > Documentation/kernel-parameters.txt | 9 + > arch/x86/include/asm/kvm_host.h | 2 + > arch/x86/kvm/svm.c | 406 ++++++++++++++++++++++++++++-- > drivers/iommu/amd_iommu.c | 484 +++++++++++++++++++++++++++++++----- > drivers/iommu/amd_iommu_init.c | 181 +++++++++++++- > drivers/iommu/amd_iommu_proto.h | 1 + > drivers/iommu/amd_iommu_types.h | 149 +++++++++++ > include/linux/amd-iommu.h | 43 +++- > 8 files changed, 1188 insertions(+), 87 deletions(-) >
| |