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] VT-d: per-iommu domain-id

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] VT-d: per-iommu domain-id
From: "Han, Weidong" <weidong.han@xxxxxxxxx>
Date: Tue, 8 Dec 2009 09:03:04 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
Delivery-date: Mon, 07 Dec 2009 17:04:08 -0800
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
Thread-index: Acp3ojIkrwFyQaHdSj+mGt7XrsSolQ==
Thread-topic: [Xen-devel] [PATCH] VT-d: per-iommu domain-id
Currently, xen uses shared iommu domain-id across all the VT-d units in the 
platform. The number of iommu domain-ids (NR_DID, e.g. 256) supported by each 
VT-d unit is reported in Capability register. The limitation of current 
implementation is it only can support at most NR_DID domains with VT-d in the 
entire platform, even though the platform can support N * NR_DID (where N is 
the number of VT-d units). Imagine a platform with several SR_IOV NICs, and 
each NIC supports 128 VFs. It possibly beyond the NR_DID. 

This patch implements iommu domain-id management per iommu (VT-d unit), hence 
solves above limitation. It removes the global domain-id bitmap, instead use 
domain-id bitmap in struct iommu, and also involve an array to map guest 
domain-id and iommu domain-id, which is used to iommu domain-id when flush 
context cache or IOTLB. When a device is assigned to a guest, choose an 
available iommu domain-id from the device's iommu, and map guest domain id to 
the domain-id mapping array. When a device is deassigned from a guest, clear 
the domain-id bit in domain-id bitmap and clear the corresponding entry in 
domain-id map array if there is no other devices under the same iommu owned by 
the guest.

Signed-off-by: Weidong Han <weidong.han@xxxxxxxxx>

Attachment: per-iommu-domid.patch
Description: per-iommu-domid.patch

Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] VT-d: per-iommu domain-id, Han, Weidong <=