qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Peter Xu <peterx@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,
	Richard Henderson <rth@twiddle.net>,
	Eduardo Habkost <ehabkost@redhat.com>
Subject: [Qemu-devel] [PULL v4 14/57] intel_iommu: allow queued invalidation for IR
Date: Thu, 21 Jul 2016 19:27:11 +0300	[thread overview]
Message-ID: <1469118288-4776-15-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1469118288-4776-1-git-send-email-mst@redhat.com>

From: Peter Xu <peterx@redhat.com>

Queued invalidation is required for IR. This patch add basic support for
interrupt cache invalidate requests. Since we currently have no IR cache
implemented yet, we can just skip all interrupt cache invalidation
requests for now.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/intel_iommu_internal.h | 2 ++
 hw/i386/intel_iommu.c          | 9 +++++++++
 2 files changed, 11 insertions(+)

diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h
index e5f514c..b648e69 100644
--- a/hw/i386/intel_iommu_internal.h
+++ b/hw/i386/intel_iommu_internal.h
@@ -286,6 +286,8 @@ typedef struct VTDInvDesc VTDInvDesc;
 #define VTD_INV_DESC_TYPE               0xf
 #define VTD_INV_DESC_CC                 0x1 /* Context-cache Invalidate Desc */
 #define VTD_INV_DESC_IOTLB              0x2
+#define VTD_INV_DESC_IEC                0x4 /* Interrupt Entry Cache
+                                               Invalidate Descriptor */
 #define VTD_INV_DESC_WAIT               0x5 /* Invalidation Wait Descriptor */
 #define VTD_INV_DESC_NONE               0   /* Not an Invalidate Descriptor */
 
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index 3ee5782..26e322a 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -1404,6 +1404,15 @@ static bool vtd_process_inv_desc(IntelIOMMUState *s)
         }
         break;
 
+    case VTD_INV_DESC_IEC:
+        VTD_DPRINTF(INV, "Interrupt Entry Cache Invalidation "
+                    "not implemented yet");
+        /*
+         * Since currently we do not cache interrupt entries, we can
+         * just mark this descriptor as "good" and move on.
+         */
+        break;
+
     default:
         VTD_DPRINTF(GENERAL, "error: unkonw Invalidation Descriptor type "
                     "hi 0x%"PRIx64 " lo 0x%"PRIx64 " type %"PRIu8,
-- 
MST

  parent reply	other threads:[~2016-07-21 16:27 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-21 16:26 [Qemu-devel] [PULL v4 00/57] pc, pci, virtio: new features, cleanups, fixes Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 01/57] nvdimm: fix memory leak in error code path Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 02/57] tests/prom-env-test: increase the test timeout Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 03/57] hw/alpha: fix PCI bus initialization Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 04/57] hw/mips: " Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 05/57] hw/apb: " Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 06/57] hw/grackle: " Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 07/57] hw/prep: realize the PCI root bus as part of the prep init Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 08/57] hw/versatile: realize the PCI root bus as part of the versatile init Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 09/57] x86-iommu: introduce parent class Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 10/57] intel_iommu: rename VTD_PCI_DEVFN_MAX to x86-iommu Michael S. Tsirkin
2016-07-21 16:26 ` [Qemu-devel] [PULL v4 11/57] x86-iommu: provide x86_iommu_get_default Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 12/57] x86-iommu: introduce "intremap" property Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 13/57] acpi: enable INTR for DMAR report structure Michael S. Tsirkin
2016-07-21 16:27 ` Michael S. Tsirkin [this message]
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 15/57] intel_iommu: set IR bit for ECAP register Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 16/57] acpi: add DMAR scope definition for root IOAPIC Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 17/57] intel_iommu: define interrupt remap table addr register Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 18/57] intel_iommu: handle interrupt remap enable Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 19/57] intel_iommu: define several structs for IOMMU IR Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 20/57] intel_iommu: add IR translation faults defines Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 21/57] intel_iommu: Add support for PCI MSI remap Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 22/57] q35: ioapic: add support for emulated IOAPIC IR Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 23/57] ioapic: introduce ioapic_entry_parse() helper Michael S. Tsirkin
2016-07-21 16:27 ` [Qemu-devel] [PULL v4 24/57] intel_iommu: add support for split irqchip Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 25/57] x86-iommu: introduce IEC notifiers Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 26/57] ioapic: register IOMMU IEC notifier for ioapic Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 27/57] intel_iommu: Add support for Extended Interrupt Mode Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 28/57] intel_iommu: add SID validation for IR Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 29/57] kvm-irqchip: simplify kvm_irqchip_add_msi_route Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 30/57] kvm-irqchip: i386: add hook for add/remove virq Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 31/57] kvm-irqchip: x86: add msi route notify fn Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 32/57] kvm-irqchip: do explicit commit when update irq Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 33/57] intel_iommu: support all masks in interrupt entry cache invalidation Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 34/57] kvm-all: add trace events for kvm irqchip ops Michael S. Tsirkin
2016-07-21 16:28 ` [Qemu-devel] [PULL v4 35/57] intel_iommu: disallow kernel-irqchip=on with IR Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 36/57] virtio: Add typedef for handle_output Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 37/57] virtio: Introduce virtio_add_queue_aio Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 38/57] virtio-blk: Call virtio_add_queue_aio Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 39/57] virtio-scsi: " Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 40/57] Revert "mirror: Workaround for unexpected iohandler events during completion" Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 41/57] virtio-scsi: Replace HandleOutput typedef Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 42/57] virtio-net: Remove old migration version support Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 43/57] virtio-serial: " Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 44/57] virtio: Migration helper function and macro Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 45/57] virtio-scsi: Wrap in vmstate Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 46/57] virtio-blk: " Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 47/57] virtio-rng: " Michael S. Tsirkin
2016-07-21 16:29 ` [Qemu-devel] [PULL v4 48/57] virtio-balloon: " Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 49/57] virtio-net: " Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 50/57] virtio-serial: " Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 51/57] 9pfs: " Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 52/57] virtio-input: " Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 53/57] virtio-gpu: Use migrate_add_blocker for virgl migration blocking Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 54/57] virtio-gpu: Wrap in vmstate Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 55/57] virtio: Update migration docs Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 56/57] intel_iommu: get rid of {0} initializers Michael S. Tsirkin
2016-07-21 16:30 ` [Qemu-devel] [PULL v4 57/57] intel_iommu: avoid unnamed fields Michael S. Tsirkin
2016-07-21 17:23 ` [Qemu-devel] [PULL v4 00/57] pc, pci, virtio: new features, cleanups, fixes Peter Maydell

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=1469118288-4776-15-git-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    /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;
as well as URLs for NNTP newsgroup(s).