On Mon, Apr 14, 2014 at 06:22:58PM -0700, Simon Ustimenko wrote: > > On 4/11/2014 2:30 PM, Jiang, Dave wrote: > >On Fri, 2014-04-11 at 14:15 -0700, Simon Ustimenko wrote: > >>we've been playing around with the I/OAT DMA, trying to make it copy > >>from main memory to the MMIO, and we're facing troubles (incomplete > >>transfers, kernel oops). > >> > >>Surprisingly, we have no problems with the DMA in the opposite direction. > >On the Xeon platform memory -> MMIO is supported, MMIO to memory and > >between MMIO is not. Not that you want to read from PCIe anyhow as the > >performance is bad. PCIe Writes are posted and reads are not. You can > >take a look at the NTB driver drivers/ntb/ in its usage of the IOATDMA > >transfer from mem -> mmio as an example. What kind of kernel oops are > >you hitting? And you have no issues using the CPU to copy the data to > >those regions? > Thanks Dave, for your response. > > Sorry, cannot answer about the kernel oops. I don't really have the > code that was used or much of the details. Only the verbal testimony > claiming that the mem -> mmio copy with ioatdma "didn't work", > blaming the IOAT hardware being "broken", which I find hard to > believe. Hence the whole question about whether anyone else have > ever used the IOAT for mem -> mmio copying in production? As Dave was saying, the Linux NTB driver is using the ioat to copy from mem to mmio. I've verified its use in NTB on 4 generations of Xeon and Atom. I have not seen any issues. Thanks, Jon > I know, however, that copying using the CPU works fine. > > Regards, > Simon -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html