From: "Raj, Ashok" <ashok.raj@intel.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
Lu Baolu <baolu.lu@linux.intel.com>,
Darrel Goeddel <DGoeddel@forcepoint.com>,
Mark Scott <mscott@forcepoint.com>,
Romil Sharma <rsharma@forcepoint.com>,
Joerg Roedel <joro@8bytes.org>, Ashok Raj <ashok.raj@intel.com>
Subject: Re: [PATCH] iommu: Relax ACS requirement for RCiEP devices.
Date: Tue, 26 May 2020 11:34:57 -0700 [thread overview]
Message-ID: <20200526183457.GC36356@otc-nc-03> (raw)
In-Reply-To: <20200526122654.7ac087b3@x1.home>
On Tue, May 26, 2020 at 12:26:54PM -0600, Alex Williamson wrote:
> > >
> > > I don't think the language in the spec is anything sufficient to handle
> > > RCiEP uniquely. We've previously rejected kernel command line opt-outs
> > > for ACS, and the extent to which those patches still float around the
> > > user community and are blindly used to separate IOMMU groups are a
> > > testament to the failure of this approach. Users do not have a basis
> > > for enabling this sort of opt-out. The benefit is obvious in the IOMMU
> > > grouping, but the risk is entirely unknown. A kconfig option is even
> > > worse as that means if you consume a downstream kernel, the downstream
> > > maintainers might have decided universally that isolation is less
> > > important than functionality.
> >
> > We discussed this internally, and Intel vt-d spec does spell out clearly
> > in Section 3.16 Root-Complex Peer to Peer Considerations. The spec clearly
> > calls out that all p2p must be done on translated addresses and therefore
> > must go through the IOMMU.
> >
> > I suppose they should also have some similar platform gauranteed behavior
> > for RCiEP's or MFD's *Must* behave as follows. The language is strict and
> > when IOMMU is enabled in the platform, everything is sent up north to the
> > IOMMU agent.
> >
> > 3.16 Root-Complex Peer to Peer Considerations
> > When DMA remapping is enabled, peer-to-peer requests through the
> > Root-Complex must be handled
> > as follows:
> > • The input address in the request is translated (through first-level,
> > second-level or nested translation) to a host physical address (HPA).
> > The address decoding for peer addresses must be done only on the
> > translated HPA. Hardware implementations are free to further limit
> > peer-to-peer accesses to specific host physical address regions
> > (or to completely disallow peer-forwarding of translated requests).
> > • Since address translation changes the contents (address field) of the PCI
> > Express Transaction Layer Packet (TLP), for PCI Express peer-to-peer
> > requests with ECRC, the Root-Complex hardware must use the new ECRC
> > (re-computed with the translated address) if it decides to forward
> > the TLP as a peer request.
> > • Root-ports, and multi-function root-complex integrated endpoints, may
> > support additional peerto-peer control features by supporting PCI Express
> > Access Control Services (ACS) capability. Refer to ACS capability in
> > PCI Express specifications for details.
>
> That sounds like it might be a reasonable basis for quirking all RCiEPs
> on VT-d platforms if Intel is willing to stand behind it. Thanks,
>
Sounds good.. that's what i hear from our platform teams. If there is a
violation it would be a bug in silicon.
prev parent reply other threads:[~2020-05-26 18:35 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-05 4:42 [PATCH] iommu: Relax ACS requirement for RCiEP devices Ashok Raj
2020-05-05 5:19 ` Alex Williamson
2020-05-05 6:11 ` Raj, Ashok
2020-05-05 14:05 ` Alex Williamson
2020-05-05 14:56 ` Raj, Ashok
2020-05-05 15:34 ` Alex Williamson
2020-05-26 18:06 ` Raj, Ashok
2020-05-26 18:26 ` Alex Williamson
2020-05-26 18:34 ` Raj, Ashok [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200526183457.GC36356@otc-nc-03 \
--to=ashok.raj@intel.com \
--cc=DGoeddel@forcepoint.com \
--cc=alex.williamson@redhat.com \
--cc=baolu.lu@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=mscott@forcepoint.com \
--cc=rsharma@forcepoint.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox