From: Feng Wu <feng.wu@intel.com>
To: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com,
x86@kernel.org, gleb@kernel.org, pbonzini@redhat.com,
dwmw2@infradead.org, joro@8bytes.org, alex.williamson@redhat.com,
jiang.liu@linux.intel.com
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
kvm@vger.kernel.org, Feng Wu <feng.wu@intel.com>
Subject: [v2 06/25] iommu, x86: No need to migrating irq for VT-d Posted-Interrupts
Date: Wed, 3 Dec 2014 15:39:35 +0800 [thread overview]
Message-ID: <1417592394-24343-7-git-send-email-feng.wu@intel.com> (raw)
In-Reply-To: <1417592394-24343-1-git-send-email-feng.wu@intel.com>
We don't need to migrate the irqs for VT-d Posted-Interrupts here.
When 'pst' is set in IRTE, the associated irq will be posted to
guests instead of interrupt remapping. The destination of the
interrupt is set in Posted-Interrupts Descriptor, and the migration
happens during vCPU scheduling.
Signed-off-by: Feng Wu <feng.wu@intel.com>
Reviewed-by: Jiang Liu <jiang.liu@linux.intel.com>
---
drivers/iommu/intel_irq_remapping.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index 749cb93..01786a8 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -976,10 +976,20 @@ intel_ir_set_affinity(struct irq_data *data, const struct cpumask *mask,
{
struct intel_ir_data *ir_data = data->chip_data;
struct irte *irte = &ir_data->irte_entry;
+ struct irte_pi *irte_pi = (struct irte_pi *)irte;
struct irq_cfg *cfg = irqd_cfg(data);
struct irq_data *parent = data->parent_data;
int ret;
+ /*
+ * If the interrupt is for posting, it is used by guests,
+ * we cannot set irq affinity here.
+ */
+ if (irte_pi->pst == 1) {
+ pr_warn("cannot set irq affinity for posted-interrupts\n");
+ return -EBUSY;
+ }
+
ret = parent->chip->irq_set_affinity(parent, mask, force);
if (ret < 0 || ret == IRQ_SET_MASK_OK_DONE)
return ret;
--
1.7.1
next prev parent reply other threads:[~2014-12-03 7:49 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-03 7:39 [v2 00/25] Add VT-d Posted-Interrupts support Feng Wu
2014-12-03 7:39 ` [v2 01/25] genirq: Introduce irq_set_vcpu_affinity() to target an interrupt to a VCPU Feng Wu
2014-12-03 7:39 ` [v2 02/25] iommu: Add new member capability to struct irq_remap_ops Feng Wu
2014-12-03 7:39 ` [v2 03/25] iommu, x86: Define new irte structure for VT-d Posted-Interrupts Feng Wu
2014-12-03 7:39 ` [v2 04/25] iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip Feng Wu
2014-12-03 7:39 ` [v2 05/25] x86, irq: Implement irq_set_vcpu_affinity for pci_msi_ir_controller Feng Wu
2014-12-03 7:39 ` Feng Wu [this message]
2014-12-03 7:39 ` [v2 07/25] iommu, x86: Add cap_pi_support() to detect VT-d PI capability Feng Wu
2014-12-03 7:39 ` [v2 08/25] iommu, x86: Add intel_irq_remapping_capability() for Intel Feng Wu
2014-12-03 7:39 ` [v2 09/25] iommu, x86: define irq_remapping_cap() Feng Wu
2014-12-03 7:39 ` [v2 10/25] KVM: change struct pi_desc for VT-d Posted-Interrupts Feng Wu
2014-12-03 7:39 ` [v2 11/25] KVM: Add some helper functions for Posted-Interrupts Feng Wu
2014-12-03 7:39 ` [v2 12/25] KVM: Initialize VT-d Posted-Interrupts Descriptor Feng Wu
2014-12-03 7:39 ` [v2 13/25] KVM: Define a new interface kvm_find_dest_vcpu() for VT-d PI Feng Wu
2014-12-03 7:39 ` [v2 14/25] KVM: Get Posted-Interrupts descriptor address from struct kvm_vcpu Feng Wu
2014-12-03 7:39 ` [v2 15/25] KVM: Make struct kvm_irq_routing_table accessible Feng Wu
2014-12-03 7:39 ` [v2 16/25] KVM: make kvm_set_msi_irq() public Feng Wu
2014-12-03 7:39 ` [v2 17/25] KVM: kvm-vfio: User API for VT-d Posted-Interrupts Feng Wu
2014-12-04 14:04 ` Eric Auger
2014-12-08 4:58 ` Wu, Feng
2014-12-08 5:21 ` Alex Williamson
2014-12-09 11:38 ` Wu, Feng
2014-12-11 5:55 ` Wu, Feng
2014-12-11 15:45 ` Alex Williamson
2014-12-03 7:39 ` [v2 18/25] KVM: kvm-vfio: implement the VFIO skeleton " Feng Wu
2014-12-04 15:35 ` Eric Auger
2014-12-08 4:58 ` Wu, Feng
2014-12-08 5:12 ` Alex Williamson
2014-12-08 10:15 ` Eric Auger
2014-12-09 11:51 ` Wu, Feng
2014-12-03 7:39 ` [v2 19/25] KVM: x86: kvm-vfio: VT-d posted-interrupts setup Feng Wu
2014-12-03 7:39 ` [v2 20/25] x86, irq: Define a global vector for VT-d Posted-Interrupts Feng Wu
2014-12-03 7:39 ` [v2 21/25] KVM: Update Posted-Interrupts descriptor during vCPU scheduling Feng Wu
2014-12-03 7:39 ` [v2 22/25] KVM: Change NDST field after " Feng Wu
2014-12-03 7:39 ` [v2 23/25] KVM: Add the handler for Wake-up Vector Feng Wu
2014-12-03 7:39 ` [v2 24/25] KVM: Suppress posted-interrupt when 'SN' is set Feng Wu
2014-12-03 7:39 ` [v2 25/25] iommu/vt-d: Add a command line parameter for VT-d posted-interrupts Feng Wu
2014-12-08 13:36 ` [v2 00/25] Add VT-d Posted-Interrupts support Wu, Feng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1417592394-24343-7-git-send-email-feng.wu@intel.com \
--to=feng.wu@intel.com \
--cc=alex.williamson@redhat.com \
--cc=dwmw2@infradead.org \
--cc=gleb@kernel.org \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux-foundation.org \
--cc=jiang.liu@linux.intel.com \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®