PCIe Access - achieve bursts without DMA
David Laight
David.Laight at ACULAB.COM
Mon Feb 3 21:17:43 EST 2014
From: Michael Moese
> Thank you for your help - we might be satisfied with the achieved
> 18 MB/s.
We achieved about twice that using the PEX dma controller.
I found the following comment I wrote:
/* Long transfer requests are cut into smaller DMA requests.
* Each PCIe request can contain a maximum of 128 bytes, but the
* dma engine can have multiple PCIe requests outstanding and this
* speeds things up somewhat (50ns/byte with 128, 24ns/byte with 1024).
* 1k is somewhere near the point of diminishing returns. */
Those times would include a system call.
The transfers were done through a simple driver that converted pread()
and pwrite() requests into accesses to the boards memory.
The non-dma versions are just copy_to/from_user() directly between
the PCIe and user buffers.
Your 3MB/s for single word transfers is similar to what we saw.
Cycle times that make an ISA bus look fast.
David
More information about the Linuxppc-dev
mailing list