RE: IOAT DMA w/IOMMU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: linux-pci-owner@xxxxxxxxxxxxxxx [mailto:linux-pci-owner@xxxxxxxxxxxxxxx] On Behalf Of Kit Chow
> Sent: Thursday, August 9, 2018 2:48 PM
> To: Logan Gunthorpe <logang@xxxxxxxxxxxx>; Eric Pilmore <epilmore@xxxxxxxxxx>; Bjorn Helgaas <helgaas@xxxxxxxxxx>
> Cc: linux-pci@xxxxxxxxxxxxxxx; David Woodhouse <dwmw2@xxxxxxxxxxxxx>; Alex Williamson <alex.williamson@xxxxxxxxxx>;
> iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: IOAT DMA w/IOMMU
> 
> 
> 
> On 08/09/2018 02:11 PM, Logan Gunthorpe wrote:
> >
> > On 09/08/18 02:57 PM, Kit Chow wrote:
> >>
> >> On 08/09/2018 01:11 PM, Logan Gunthorpe wrote:
> >>> On 09/08/18 01:47 PM, Kit Chow wrote:
> >>>>> 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.
> >>>> I have experimented with changing ntb_async_tx_submit to dma_map the PCI
> >>>> BAR
> >>>> address. With this, I get a different DMAR error:
> >>> What code did you use to do this?
> >> If you mean version of linux, it is 4.15.7.  Or specific dma_map call, I
> >> believe it was dma_map_single.
> > I mean the complete code you use to do the mapping so we can see if it's
> > correct. dma_map_single() seems like an odd choice, I expected to see
> > dma_map_resource().
> Thanks for the suggestion!  Will try out dma_map_resource and report back.
> 
> Kit

Kit, I was able to try this on the Skylake Xeon platform with Intel NTB and ioatdma and I did not encounter any issues. Unfortunately I do not have my pre-Skylake platform to test anymore to verify.

> 
> >>>> DMAR: [DMA Write] Request device [07:00.4] fault addr ffd00000
> >>>> [fault reason 12] non-zero reserved fields in PTE
> >>> Also, what device corresponds to 07:00.4 on your system?
> >> I believe 07.00.4 was the PLX dma device. I get the same error with ioat.
> > Using the mapping with the PLX dma device likely converts it from a pure
> > P2P request to one where the TLPs pass through the IOMMU. So the fact
> > that you get the same error with both means IOAT almost certainly goes
> > through the IOMMU and there's something wrong with the mapping setup.
> >
> > Logan





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux