05-27-2018 11:24 PM
we achieved DDR to BRAM bandwidth on Standalone about ~2000MB/s (8192Byte/3850ns)
but with Petalinux(2018.1), it was 410MB/s (8192Byte/20002ns)
|8K Transfer Latency||3,850 ns||20,000 ns|
|8K Transfer BW||2030 MB/s||410 MB/s|
both system using same hardware but only CPU & DMA Frequency was slightly increased
in petalinux, we handle CDMA like below
Is it normal to get ~400MB/s bandwidth with CDMA in Petalinux?
If the way we control CDMA is wrong, how is it appropriate to approach?
05-29-2018 08:53 AM
When you measure the time to complete the transfer in Linux, where do you start and where do you stop your timer? It seems like your measurement is including a lot of operating system related overhead, which is going to hurt the bandwidth numbers for the CDMA hardware.
05-30-2018 01:01 AM
I measured the time 3 different point(map src, map dst, device_prep_dma_cpy+unmap both buffer) and accumulated later.
We decided to abandon all the DMA related Linux/Xilinx-linux APIs.
also abandoned DMA IRQ, we're now polling DMA Regs directly.
now 8KB DDR-to-DDR transfer latency decreased to ~4300ns and so on.
as you know DDR-to-BRAM will be better.