This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [PATCH 0 of 3] Avoid sharing vectors within a device when us

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 0 of 3] Avoid sharing vectors within a device when using an AMD IOMMU
From: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
Date: Tue, 26 Jul 2011 17:33:31 +0100
Cc: wei.wang2@xxxxxxx
Delivery-date: Tue, 26 Jul 2011 09:41:55 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mercurial-patchbomb/1.4.3
The interrupt remapping tables on AMD IOMMUs index by vector only.
This means that if two MSIs go through the table that are destined for
different cpus, but they share the same vector, they will be
redirected to the same place.  (E.g., one interrupt on p5 vector 67,
another interrupt on p7 vector 67; both will be redirected to the same

Introducing per-device interrupt mappings reduces the problem, but
does not solve it completely if the same device can have multiple IRQs
assigned to it, because you can get the same issue -- two different
IRQs from the same device can be assigned the same vector on different
cpus.  This causes one of the IRQs to activated when either interrupt
is triggered, and the other IRQ to never receive any interrupts.

This series consists of three patches:

1: Introduce infrastructure to allow irqs to share vector maps.  Any
IRQs sharing the same vector map will never have vector collisions.

2: Introduce option to have per-device vector maps for MSI IRQs.

3: Automatically enable per-device vector maps when running on an AMD
system with the IOMMU enabled, unless otherwise specified.

Xen-devel mailing list