From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v6 00/18] Add VT-d Posted-Interrupts support Date: Tue, 25 Aug 2015 09:57:39 +0800 Message-ID: <1440467877-5116-1-git-send-email-feng.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Feng Wu List-Id: xen-devel@lists.xenproject.org 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 Feng Wu (18): VT-d Posted-intterrupt (PI) design Add cmpxchg16b support for x86-64 iommu: Add iommu_intpost to control VT-d Posted-Interrupts feature vt-d: VT-d Posted-Interrupts feature detection vmx: Extend struct pi_desc to support VT-d Posted-Interrupts vmx: Add some helper functions for Posted-Interrupts vmx: Initialize VT-d Posted-Interrupts Descriptor vmx: Suppress posting interrupts when 'SN' is set VT-d: Remove pointless casts vt-d: Extend struct iremap_entry to support VT-d Posted-Interrupts vt-d: Add API to update IRTE when VT-d PI is used x86: move some APIC related macros to apicdef.h Update IRTE according to guest interrupt config changes vmx: posted-interrupt handling when vCPU is blocked vmx: Properly handle notification event when vCPU is running vmx: Add some scheduler hooks for VT-d posted interrupts VT-d: Dump the posted format IRTE Add a command line parameter for VT-d posted-interrupts docs/misc/vtd-pi.txt | 332 +++++++++++++++++++++++++++++++++ docs/misc/xen-command-line.markdown | 9 +- xen/arch/x86/domain.c | 19 ++ xen/arch/x86/hvm/vlapic.c | 5 - xen/arch/x86/hvm/vmx/vmcs.c | 21 +++ xen/arch/x86/hvm/vmx/vmx.c | 289 +++++++++++++++++++++++++++- xen/common/schedule.c | 2 + xen/drivers/passthrough/io.c | 125 ++++++++++++- xen/drivers/passthrough/iommu.c | 16 +- xen/drivers/passthrough/vtd/intremap.c | 199 +++++++++++++++----- xen/drivers/passthrough/vtd/iommu.c | 17 +- xen/drivers/passthrough/vtd/iommu.h | 50 +++-- xen/drivers/passthrough/vtd/utils.c | 59 ++++-- xen/include/asm-arm/domain.h | 2 + xen/include/asm-x86/apicdef.h | 4 + xen/include/asm-x86/domain.h | 3 + xen/include/asm-x86/hvm/hvm.h | 2 + xen/include/asm-x86/hvm/vmx/vmcs.h | 26 ++- xen/include/asm-x86/hvm/vmx/vmx.h | 28 +++ xen/include/asm-x86/iommu.h | 2 + xen/include/asm-x86/x86_64/system.h | 28 +++ xen/include/xen/iommu.h | 2 +- 22 files changed, 1155 insertions(+), 85 deletions(-) create mode 100644 docs/misc/vtd-pi.txt -- 2.1.0