From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Wu Subject: [PATCH v9 00/17] Add VT-d Posted-Interrupts support Date: Tue, 3 Nov 2015 16:43:10 +0800 Message-ID: <1446540207-4806-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 v9: - [PATCH v9 01/17] VT-d Posted-intterrupt (PI) design * Make the description more generic. - [PATCH v9 02/17] Add cmpxchg16b support for x86-64 * Make the *ptr operand an input and output. - [PATCH v9 15/17] vmx: VT-d posted-interrupt core logic handling * Remove arch_vcpu_block_cancel() and arch_vcpu_wake_prepare(). * Add vmx_pi_state_change() and call it before VM Entry. Feng Wu (17): r VT-d Posted-intterrupt (PI) design Add cmpxchg16b support for x86-64 ra iommu: Add iommu_intpost to control VT-d Posted-Interrupts feature r vt-d: VT-d Posted-Interrupts feature detection ra vmx: Extend struct pi_desc to support VT-d Posted-Interrupts r vmx: Add some helper functions for Posted-Interrupts ra vmx: Initialize VT-d Posted-Interrupts Descriptor r vmx: Suppress posting interrupts when 'SN' is set r VT-d: Remove pointless casts a vt-d: Extend struct iremap_entry to support VT-d Posted-Interrupts r vt-d: Add API to update IRTE when VT-d PI is used a x86: move some APIC related macros to apicdef.h a Update IRTE according to guest interrupt config changes a vmx: Properly handle notification event when vCPU is running vmx: VT-d posted-interrupt core logic handling VT-d: Dump the posted format IRTE ra Add a command line parameter for VT-d posted-interrupts r = has been 'Reviewed-by' a = has been 'Acked-by' docs/misc/vtd-pi.txt | 329 +++++++++++++++++++++++++++++++++ docs/misc/xen-command-line.markdown | 9 +- xen/arch/x86/hvm/hvm.c | 6 + xen/arch/x86/hvm/vlapic.c | 5 - xen/arch/x86/hvm/vmx/vmcs.c | 24 +++ xen/arch/x86/hvm/vmx/vmx.c | 270 ++++++++++++++++++++++++++- xen/common/schedule.c | 7 +- xen/drivers/passthrough/io.c | 123 +++++++++++- xen/drivers/passthrough/iommu.c | 16 +- xen/drivers/passthrough/vtd/intremap.c | 212 ++++++++++++++++----- xen/drivers/passthrough/vtd/iommu.c | 14 +- xen/drivers/passthrough/vtd/iommu.h | 51 +++-- xen/drivers/passthrough/vtd/utils.c | 40 ++-- xen/include/asm-arm/domain.h | 2 + xen/include/asm-x86/apicdef.h | 3 + xen/include/asm-x86/domain.h | 2 + xen/include/asm-x86/hvm/hvm.h | 2 + xen/include/asm-x86/hvm/vmx/vmcs.h | 24 ++- xen/include/asm-x86/hvm/vmx/vmx.h | 27 +++ xen/include/asm-x86/iommu.h | 2 + xen/include/asm-x86/x86_64/system.h | 33 ++++ xen/include/xen/iommu.h | 2 +- 22 files changed, 1113 insertions(+), 90 deletions(-) create mode 100644 docs/misc/vtd-pi.txt -- 2.1.0