Performances
The best performances are achieved using the 2eSST mode. The small utility vmedma
was written to measure dma speed:
>sudo ./vmedma -a 0x70c000 -m 0x20 -e 2eSST-267 -n 0x10000 --pattern -r 10
Rate: 75.817035 MB/sec
Rate: 86.509022 MB/sec
Rate: 83.637215 MB/sec
Rate: 87.407086 MB/sec
Rate: 87.375438 MB/sec
Rate: 87.495800 MB/sec
Rate: 87.588622 MB/sec
Rate: 87.618829 MB/sec
Rate: 87.348328 MB/sec
Rate: 87.589972 MB/sec
Notes:
-
with
--pattern
option, the utility checks the data read are correct (the board generate a different pattern according to the address). So this also checks the data aren't corrupted during the transfer. -
The first transfer is slower. This is because the memory was just allocated but never touched. So before the first transfer, the kernel has to initialize the pages. If the pages are initialized (using memset) before the first DMA transfer, the transfer rate is similar to the next ones.
-
There is some variations in the transfer rate.
-
All these measure were done on cdv38 (ELMA crate) using a MEN A20 master (which uses the TSI148 bridge).
The figures could be compared with an MBLT transfer:
>sudo ./vmedma -a 0x70c000 -m 0x38 -e 2eSST-267 -n 0x10000 --pattern -r 10
Rate: 39.922531 MB/sec
Rate: 43.815127 MB/sec
Rate: 43.422740 MB/sec
Rate: 43.100387 MB/sec
Rate: 43.105737 MB/sec
Rate: 44.066281 MB/sec
Rate: 43.373380 MB/sec
Rate: 44.051932 MB/sec
Rate: 44.038523 MB/sec
Rate: 44.023478 MB/sec
So MBLT is about 2x slower than 2eSST.
The prefetch feature is not available for single transfer, which is much slower:
>sudo ./vmedma -a 0x70c000 -m 0x39 -e 2eSST-267 -n 0x10000 --pattern -r 10
Rate: 15.332980 MB/sec
Rate: 15.714858 MB/sec
Rate: 15.746667 MB/sec
Rate: 15.749694 MB/sec
Rate: 15.751242 MB/sec
Rate: 15.754887 MB/sec
Rate: 15.641741 MB/sec
Rate: 15.746072 MB/sec
Rate: 15.747095 MB/sec
Rate: 15.756532 MB/sec
And finally, the BLT transfer (which also doesn't prefetch) is not very interesting:
>sudo ./vmedma -a 0x70c000 -m 0x3b -e 2eSST-267 -n 0x10000 --pattern -r 10
Rate: 14.526958 MB/sec
Rate: 14.743219 MB/sec
Rate: 14.808746 MB/sec
Rate: 14.815191 MB/sec
Rate: 14.806283 MB/sec
Rate: 14.816940 MB/sec
Rate: 14.815928 MB/sec
Rate: 14.816476 MB/sec
Rate: 14.815570 MB/sec
Rate: 14.820186 MB/sec