[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c15d0137-af02-ab85-70f3-def691d8f81b@linux.intel.com>
Date: Wed, 1 Feb 2023 13:51:07 +0800
From: Baolu Lu <baolu.lu@...ux.intel.com>
To: Bjorn Helgaas <helgaas@...nel.org>
Cc: baolu.lu@...ux.intel.com, Bjorn Helgaas <bhelgaas@...gle.com>,
Joerg Roedel <jroedel@...e.de>,
Matt Fagnani <matt.fagnani@...l.net>,
Christian König <christian.koenig@....com>,
Jason Gunthorpe <jgg@...dia.com>,
Kevin Tian <kevin.tian@...el.com>,
Vasant Hegde <vasant.hegde@....com>,
Tony Zhu <tony.zhu@...el.com>, linux-pci@...r.kernel.org,
iommu@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 1/1] PCI: Add translated request only flag for
pci_enable_pasid()
On 2023/2/1 8:14, Bjorn Helgaas wrote:
>> The translated address is specified by the IOMMU driver. The IOMMU
>> driver ensures that the address is a DMA buffer address instead of any
>> P2P address in the PCI fabric. Therefore, any translated memory request
>> will eventually be routed to IOMMU regardless of whether there is ACS
>> control in the up-streaming path.
> A Memory Request with an address that is not a P2P address, i.e., it
> is not contained in any bridge aperture, will*always* be routed
> toward the RC, won't it?
Yes.
> Isn't that the case regardless of whether
> the address is translated or untranslated, and even regardless of ACS?
They are different. The translated addresses are approved by the Linux
kernel. But untranslated addresses are not. Malicious or buggy userspace
applications could program the device to DMA to addresses locating in
the P2P aperture.
> IIUC, ACS basically causes peer-to-peer requests to be routed upstream
> instead of directly to the peer.
Yes.
Best regards,
baolu
Powered by blists - more mailing lists