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] Re: [PATCH][VTD] enabling PCI ACS P2P upstream forwarding

To: "Allen M Kay" <allen.m.kay@xxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH][VTD] enabling PCI ACS P2P upstream forwarding
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Wed, 18 Nov 2009 09:08:36 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, Donald D Dugger <donald.d.dugger@xxxxxxxxx>
Delivery-date: Wed, 18 Nov 2009 01:09:01 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <57C9024A16AD2D4C97DC78E552063EA3E3876DEA@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
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>
References: <57C9024A16AD2D4C97DC78E552063EA3E3876DEA@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I'm pretty certain a call to pci_enable_acs() would also be needed from


PS: Generating patches with -p makes it easier for reviewers to identfiy
where hunks belong.

>>> "Kay, Allen M" <allen.m.kay@xxxxxxxxx> 17.11.09 22:49 >>>
This patch enables P2P upstream forwarding in ACS capable PCIe switches.  The 
enabling is conditioned on iommu_enabled variable.  This code solves two 
potential problems in virtualization environment where a PCIe device is 
assigned to a guest domain using a HW iommu such as VT-d:

1) Unintentional failure caused by guest physical address programmed into the 
device's DMA that happens to match the memory address range of other downstream 
ports in the same PCIe switch.  This causes the PCI transaction to go to the 
matching downstream port instead of go to the root complex to get translated by 
VT-d as it should be.

2) Malicious guest software intentionally attacks another downstream PCIe 
device by programming the DMA address into the assigned device that matches 
memory address range of the downstream PCIe port.

Corresponding ACS filtering code is already in upstream control panel code that 
do not allow PCI device passthrough to guests if it is behind a PCIe switch 
that does not have ACS capability or with ACS capability but is not enabled. 

Signed-off-by: Allen Kay allen.m.kay@xxxxxxxxx

Xen-devel mailing list

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