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] [RFC PATCH 0/2] Xen Calgary IOMMU support

To: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [RFC PATCH 0/2] Xen Calgary IOMMU support
From: Muli Ben-Yehuda <mulix@xxxxxxxxx>
Date: Sun, 26 Mar 2006 23:08:09 +0200
Cc: muli@xxxxxxxxxx, Jimi Xenidis <jimix@xxxxxxxxxxxxxx>, amar@xxxxxxxxxx, asit.k.mallick@xxxxxxxxx, leendert@xxxxxxxxxx, okrieg@xxxxxxxxxx, elsie.wahlig@xxxxxxx, jun.nakajima@xxxxxxxxx, Jon Mason <jdmason@xxxxxxxxxx>, taufikm@xxxxxxxxxx
Delivery-date: Sun, 26 Mar 2006 21:10:12 +0000
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/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
User-agent: Mutt/1.5.11+cvs20060126
The following two patches, against the xen-unstable and linux-2.6-xen
repositories, introduce proof-of-concept IOMMU support in Xen. The
IOMMU is the Calgary IOMMU found in high-end IBM xSeries servers. This
an isolation-capable IOMMU that provides isolation per PCI bus. With
such an IOMMU you can safely grant two domains *direct access* to two
PCI devices (provided they're on separate busses, which is the default
topology on these machines) and they can't DMA into each other's
memory.

The patches are based on the bare metal Linux Calgary IOMMU support
that is in -mm. They're proof of concept, not to be applied yet, may
eat your file system, belch and not say thank you, etc, etc - but they
work for us. With these patches dom0 runs with translation enabled.

There's plenty more to be done, but we we're aiming to release early
and often. Comments highly appreciated!

Short overview:

- dom0 creates "IO spaces" via iommu_create_io_space, one IO space per
BDF. Xen allocates memory for the translation tables, dom0 initializes
the IOMMU, Xen programs it.
- when a driver wishes to DMA, it goes through the Linux DMA API as
usual. The DMA API makes hypercalls to map and unmap pages into the IO
space, and returns the IO addresses to the driver.

TODO list (not necessarily in order of priority):

- finish OLS paper :-)
- cleaner separation of responsibilities between dom0 and Xen -
requires improved ioremap support in Xen
- add TCE invalidate entry/range/all hypercalls
- map Calgary register space in Xen so that we can do cache flushing
in Xen
- utilize the IOMMU in a direct HW access partition other than dom0
- validate all map/unamp requests (make sure OS is only
mapping/unmapping entries it owns)
- integration with grant tables and swiotlb
- integration with pci frontend / backend
- integration with management tools / domain configuration, etc
- support for Intel's and AMD's upcoming IOMMUs

Cheers,
Muli
-- 
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/


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

<Prev in Thread] Current Thread [Next in Thread>