WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] MSI and VT-d interrupt remapping

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] MSI and VT-d interrupt remapping
From: Espen Skoglund <espen.skoglund@xxxxxxxxxxxxx>
Date: Thu, 6 Mar 2008 21:07:46 +0000
Delivery-date: Thu, 06 Mar 2008 13:09:06 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I've seen patches for handling MSIs posted on this list.  I know that
they are still being worked on, but by the looks of it they are
missing some functionality that could prove useful.

The proposed patches enable a device to allocate a vector to an MSI
interrupt.  For MSI-X a set of vectors can be allocated.  When
configuring MSIs, for each PCI function one configures a specific
destination address and message data to be used for interrupt
triggering.  The message address indicates the destination for the
interrupt and the message data essentially indicates the vector to
trigger on the destination.

Now, MSI also has a mode which allows up to the 5 lower bits of the
message data to be set arbitrarily by the device itself.  That is, a
device can be configured to deliver up to 32 different, contigous
vectors aligned within an apropriate boundary.

Enabling a device to trigger 32 different vectors on a single
interrupt destination may not actually be all that useful.  However,
with the introduction of VT-d interrupt remapping these 32 different
messages can be remapped to to arbitrary vectors *and*
destinations---not only to a contigous set of vectors on a single
destination.

If an MSI capable device was able to make use of the above feature,
the device could be set up to generate different interrupts depending
on where the incoming interrupt was to be handled.  For example,
incoming data for a particular guest could trigger an interrupt on the
processor where that guest is running.  Obviously, a dom0-like backend
driver would not be involved in the actual event delivery in these
situations.  The event would be delivered directly to the frontend.

The necessary changes would enable a device driver for an MSI capable
device to allocate a range of pirqs and bind these to different
frontends.

Does this make sense?

        eSk

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel