Altera_Forum
Honored Contributor
16 years agoPoor performance with PCIe and DMA on Linux
Hello all,
I built a evaluation system on the Arria II dev board that transports two similar datastreams to a linux host so that each stream can be read from a different device file. The sopc system uses a dma controller that reads data from a fifo. The fifos are located in a custom component. The fifo is twice the maximum dma transfer length. The fifo generates a waitrequest if it's less than half full. Each stream has a datarate of approx. 62.5 Mb/s, so I need 125 Mb/s what should be possible with a PCIe-x1 port. If I measure the throughput with `dd`, I reach 40.1 Mb/s reading one stream at a time. I realized that waitrequest from the PCIe-Tx-port throttles the data flow significantly. My system is homogenous with 32 bit datawidth. Does somebody has a idea how I can speed up my data transfers? Thanks in advance. Regards, Frederik