linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kit Chow <kchow@gigaio.com>
To: Logan Gunthorpe <logang@deltatee.com>,
	Eric Pilmore <epilmore@gigaio.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
	linux-pci@vger.kernel.org, David Woodhouse <dwmw2@infradead.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	iommu@lists.linux-foundation.org,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: IOAT DMA w/IOMMU
Date: Thu, 16 Aug 2018 10:16:14 -0700	[thread overview]
Message-ID: <695826a6-e10c-5a30-a51f-7cc61ba6e640@gigaio.com> (raw)
In-Reply-To: <7068db44-af31-4462-f966-2dd2340ba0f0@deltatee.com>


On 08/09/2018 02:36 PM, Logan Gunthorpe wrote:
>
> On 09/08/18 03:31 PM, Eric Pilmore wrote:
>> On Thu, Aug 9, 2018 at 12:35 PM, Logan Gunthorpe <logang@deltatee.com> wrote:
>>> Hey,
>>>
>>> On 09/08/18 12:51 PM, Eric Pilmore wrote:
>>>>>> Was wondering if anybody here has used IOAT DMA engines with an
>>>>>> IOMMU turned on (Xeon based system)? My specific question is really
>>>>>> whether it is possible to DMA (w/IOAT) to a PCI BAR address as the
>>>>>> destination without having to map that address to the IOVA space of
>>>>>> the DMA engine first (assuming the IOMMU is on)?
>>> I haven't tested this scenario but my guess would be that IOAT would
>>> indeed go through the IOMMU and the PCI BAR address would need to be
>>> properly mapped into the IOAT's IOVA. The fact that you see DMAR errors
>>> is probably a good indication that this is the case. I really don't know
>>> why you'd want to DMA something without mapping it.
>> The thought was to avoid paying the price of having to go through yet another
>> translation and also because it was not believed to be necessary anyway since
>> the DMA device could go straight to a PCI BAR address without the need for a
>> mapping.  We have been playing with two DMA engines, IOAT and PLX. The
>> PLX does not have any issues going straight to the PCI BAR address, but unlike
>> IOAT, PLX is sitting "in the PCI tree".
> Yes, you can do true P2P transactions with the PLX DMA engine. (Though
> you do have to be careful as technically you need to translate to a PCI
> bus address not the CPU physical address which are the same on x86; and
> you need to watch that ACS doesn't mess it up).
>
> It doesn't sound like it's possible to avoid the IOMMU when using the
> IOAT so you need the mapping. I would not expect the extra translation
> in the IOMMU to be noticeable, performance wise.
>
> Logan
Hi Logan,

Based on Dave Jiang's suggestion, I am looking into upstreaming the
ntb change to dma map the pci bar address in ntb_async_tx_submit() 
(along with
the intel iommu change to support dma_map_resource).

I only have access to intel hosts for testing (and possibly an AMD
host currently collecting dust) and am not sure how to go about getting
the proper test coverage for other architectures.

Any suggestions? Do you anticipate any issues with dma mapping the pci bar
address in ntb_async_tx_submit on non-x86 archs?  Do you or know of folks
who have ntb test setups with non-x86 hosts who might be able to help?

Thanks
Kit

  reply	other threads:[~2018-08-16 17:16 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-09 18:14 IOAT DMA w/IOMMU Eric Pilmore
2018-08-09 18:43 ` Bjorn Helgaas
2018-08-09 18:51   ` Eric Pilmore
2018-08-09 19:35     ` Logan Gunthorpe
2018-08-09 19:47       ` Kit Chow
2018-08-09 20:11         ` Logan Gunthorpe
2018-08-09 20:57           ` Kit Chow
2018-08-09 21:11             ` Logan Gunthorpe
2018-08-09 21:47               ` Kit Chow
2018-08-09 22:40                 ` Jiang, Dave
2018-08-09 22:48                   ` Kit Chow
2018-08-09 22:50                     ` Logan Gunthorpe
2018-08-09 23:00                       ` Kit Chow
2018-08-10 16:02                         ` Kit Chow
2018-08-10 16:23                           ` Kit Chow
2018-08-10 16:24                             ` Logan Gunthorpe
2018-08-10 16:24                           ` Logan Gunthorpe
2018-08-10 16:31                             ` Dave Jiang
2018-08-10 16:33                               ` Logan Gunthorpe
2018-08-10 17:01                                 ` Dave Jiang
2018-08-10 17:15                                   ` Logan Gunthorpe
2018-08-10 17:46                                     ` Dave Jiang
2018-08-11  0:53                                       ` Kit Chow
2018-08-11  2:10                                         ` Logan Gunthorpe
2018-08-13 14:23                                           ` Kit Chow
2018-08-13 14:59                                             ` Robin Murphy
2018-08-13 15:21                                               ` Kit Chow
2018-08-13 23:30                                                 ` Kit Chow
2018-08-13 23:39                                                   ` Logan Gunthorpe
2018-08-13 23:48                                                     ` Kit Chow
2018-08-13 23:50                                                       ` Logan Gunthorpe
2018-08-14 13:47                                                         ` Kit Chow
2018-08-14 14:03                                                         ` Robin Murphy
2018-08-13 23:36                                                 ` Kit Chow
2018-08-09 21:31       ` Eric Pilmore
2018-08-09 21:36         ` Logan Gunthorpe
2018-08-16 17:16           ` Kit Chow [this message]
2018-08-16 17:21             ` Logan Gunthorpe
2018-08-16 18:53               ` Kit Chow
2018-08-16 18:56                 ` Logan Gunthorpe
2018-08-21 23:18                   ` Eric Pilmore
2018-08-21 23:20                     ` Logan Gunthorpe
2018-08-21 23:28                       ` Eric Pilmore
2018-08-21 23:35                         ` Logan Gunthorpe
2018-08-21 23:45                           ` Eric Pilmore
2018-08-21 23:53                             ` Logan Gunthorpe
2018-08-21 23:59                               ` Eric Pilmore
2018-08-21 23:30                       ` Eric Pilmore

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=695826a6-e10c-5a30-a51f-7cc61ba6e640@gigaio.com \
    --to=kchow@gigaio.com \
    --cc=alex.williamson@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=epilmore@gigaio.com \
    --cc=helgaas@kernel.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=logang@deltatee.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;
as well as URLs for NNTP newsgroup(s).