From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932607AbbESJQK (ORCPT ); Tue, 19 May 2015 05:16:10 -0400 Received: from mga01.intel.com ([192.55.52.88]:44001 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932541AbbESJQF (ORCPT ); Tue, 19 May 2015 05:16:05 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,457,1427785200"; d="scan'208";a="728233198" From: Feng Wu To: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com Cc: linux-kernel@vger.kernel.org, jiang.liu@linux.intel.com, Feng Wu Subject: [v7 0/4] prerequisite changes for VT-d posted-interrupts Date: Tue, 19 May 2015 17:07:13 +0800 Message-Id: <1432026437-16560-1-git-send-email-feng.wu@intel.com> X-Mailer: git-send-email 2.1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.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 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