QDMA Data Transfer between PCIe Endpoint and DDR Memory on LX2160A Platform

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

QDMA Data Transfer between PCIe Endpoint and DDR Memory on LX2160A Platform

QDMA Data Transfer between PCIe Endpoint and DDR Memory on LX2160A Platform

Introduction

The qDMA controller transfers blocks of data between one source and one destination. The blocks of data transferred can be represented in memory as contiguous or noncontiguous using scatter/gather table(s). Channel virtualization is supported through enqueuing of DMA jobs to, or dequeuing DMA jobs from, different work queues. QDMA can support LX2160A with DPAA2.

The attached patch is used for QDMA data transfer between PCIe Endpoint and DDR memory on LX2160A Platform.

Apply the patch and rebuild Kernel image in LSDK 21.08

Go to LSDK 21.08 Linux Kernel source folder components/linux/linux/

 

Apply the attached patch.

$ patch -p1 < 0001-QDMA-Performance-test.patch

 

$ flex-builder -c linux:custom -a arm64

Enable CONFIG_FSL_DPAA2_QDMA=y

 

$ Rebuild Linux Kernel.

$ flex-builder -c linux -a arm64

 

Transfer data from Memory to Memory

root@localhost:~# restool dpdmai create --num-queues=8 --priorities=2,5

dpdmai.0 is created under dprc.1

root@localhost:~# restool dprc assign dprc.1 --object=dpdmai.0 --plugged=1

root@localhost:~# echo "dpdmai.0" > /sys/module/dmatest/parameters/device

root@localhost:~# echo '7       4       1       7' > /proc/sys/kernel/printk

root@localhost:~# echo 1 > /sys/module/dmatest/parameters/dmatest_option

root@localhost:~# echo 10 > /sys/module/dmatest/parameters/iterations

root@localhost:~# echo 4096 > /sys/module/dmatest/parameters/test_buf_size

root@localhost:~# echo 1 > /sys/module/dmatest/parameters/threads_per_chan

root@localhost:~# echo 1 > /sys/module/dmatest/parameters/run

[  177.903819] dmatest: current_mask 1

root@localhost:~# [  177.907636] dmatest: len 11         save_mask ffff  tmp_mask 2

[  178.927396] dmatest: qdma-test-task: summary 10 tests, 0 failures 303030 iops 1212121 KB/s 1241212121 B/s (0)

[  178.937308] dmatest: total_len 40960  len 4096

[  178.941870] dmatest: runtime 33

[  178.941870]

 

root@localhost:~# echo 8 > /sys/module/dmatest/parameters/threads_per_chan

root@localhost:~# echo 1 > /sys/module/dmatest/parameters/run

[  273.731698] dmatest: current_mask 1

root@localhost:~# [  273.735625] dmatest: len 11         save_mask ffff  tmp_mask 2

[  274.767409] dmatest: qdma-test-task: summary 10 tests, 0 failures 357142 iops 1428571 KB/s 1462857142 B/s (0)

[  274.777315] dmatest: total_len 40960  len 4096

[  274.781875] dmatest: runtime 28

[  274.781875]

 

Transfer data from Memory to PCIe 

root@lx2160ardb-rev2:~# restool dpdmai create --num-queues=8 --priorities=2,5

dpdmai.0 is created under dprc.1

root@lx2160ardb-rev2:~# restool dprc assign dprc.1 --object=dpdmai.0 --plugged=1

root@lx2160ardb-rev2:~# echo "dpdmai.0" > /sys/module/dmatest/parameters/device

root@lx2160ardb-rev2:~# echo '7       4       1       7' > /proc/sys/kernel/printk

root@lx2160ardb-rev2:~# echo 4096 > /sys/module/dmatest/parameters/test_buf_size

root@lx2160ardb-rev2:~#  echo 10 > /sys/module/dmatest/parameters/iterations

root@lx2160ardb-rev2:~# echo 2 > /sys/module/dmatest/parameters/dmatest_option

root@lx2160ardb-rev2:~# echo 0x9040000000 > /sys/module/dmatest/parameters/pci_phys_addr

root@lx2160ardb-rev2:~# echo 1 > /sys/module/dmatest/parameters/produ_task_number

root@lx2160ardb-rev2:~# echo 1 > /sys/module/dmatest/parameters/run

[  214.319248] dmatest: current_mask 1

root@lx2160ardb-rev2:~# [  214.322864] dmatest: len 11   save_mask ffff  tmp_mask 2

[  214.330187] dmatest: pcie_phy_base : 9040000000       pcie_virt_base : 0000000014415a49

[  215.355448] dmatest: qdma-test-task: summary 10 tests, 0 failures 26737 iops 106951 KB/s 109518716 B/s (0)

[  215.365093] dmatest: total_len 40960  len 4096

[  215.369529] dmatest: runtime 374

[  215.369529]

 

添付
%3CLINGO-SUB%20id%3D%22lingo-sub-2312516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELX2160A%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BPCIe%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%A8DDR%E3%83%A1%E3%83%A2%E3%83%AA%E9%96%93%E3%81%AEQDMA%E3%83%87%E3%83%BC%E3%82%BF%E8%BB%A2%E9%80%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2312516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%0A%3CH2%20id%3D%22toc-hId--470716456%22%20id%3D%22toc-hId--468716620%22%3E%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB%3C%2FH2%3E%0A%3CP%3EqDMA%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%81%AF%E3%80%811%E3%81%A4%E3%81%AE%E9%80%81%E4%BF%A1%E5%85%83%E3%81%A81%E3%81%A4%E3%81%AE%E9%80%81%E4%BF%A1%E5%85%88%E3%81%AE%E9%96%93%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E8%BB%A2%E9%80%81%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%E8%BB%A2%E9%80%81%E3%81%95%E3%82%8C%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%81%AF%E3%80%81%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%83%E3%82%BF%E3%83%BC%2F%E3%82%AE%E3%83%A3%E3%82%B6%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E3%83%A1%E3%83%A2%E3%83%AA%E5%86%85%E3%81%A7%E9%80%A3%E7%B6%9A%E3%81%BE%E3%81%9F%E3%81%AF%E9%9D%9E%E9%80%A3%E7%B6%9A%E3%81%A8%E3%81%97%E3%81%A6%E8%A1%A8%E7%8F%BE%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB%E4%BB%AE%E6%83%B3%E5%8C%96%E3%81%AF%E3%80%81DMA%E3%82%B8%E3%83%A7%E3%83%96%E3%82%92%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%AD%E3%83%A5%E3%83%BC%E3%81%AB%E3%82%A8%E3%83%B3%E3%82%AD%E3%83%A5%E3%83%BC%E3%81%97%E3%81%9F%E3%82%8A%E3%80%81%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%AD%E3%83%A5%E3%83%BC%E3%81%8B%E3%82%89DMA%E3%82%B8%E3%83%A7%E3%83%96%E3%82%92%E3%83%87%E3%82%AD%E3%83%A5%E3%83%BC%E3%81%97%E3%81%9F%E3%82%8A%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82QDMA%E3%81%AFDPAA2%E3%82%92%E6%90%AD%E8%BC%89%E3%81%97%E3%81%9FLX2160A%E3%82%92%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%B7%BB%E4%BB%98%E3%81%AE%E3%83%91%E3%83%83%E3%83%81%E3%81%AF%E3%80%81LX2160A%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E4%B8%8A%E3%81%AEPCIe%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%81%A8DDR%E3%83%A1%E3%83%A2%E3%83%AA%E9%96%93%E3%81%AEQDMA%E3%83%87%E3%83%BC%E3%82%BF%E8%BB%A2%E9%80%81%E3%81%AB%E4%BD%BF%E7%94%A8%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-2016796377%22%20id%3D%22toc-hId-2018796213%22%3E%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%80%81LSDK%2021.08%E3%81%A7%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%82%92%E5%86%8D%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FH2%3E%0A%3CP%3ELSDK%2021.08%20Linux%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%20components%2Flinux%2Flinux%2F%20%E3%81%AB%E7%A7%BB%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E6%B7%BB%E4%BB%98%E3%81%AE%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3CP%3E%24%20patch%20-p1%20%26lt%3B%200001-QDMA-Performance-test.patch%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%24%20flex-builder%20-c%20linux%3Acustom%20-a%20arm64%3C%2FP%3E%0A%3CP%3ECONFIG_FSL_DPAA2_QDMA%3Dy%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%24%20Linux%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB%E3%82%92%E5%86%8D%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%24%20flex-builder%20-c%20linux%20-a%20arm64%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-209341914%22%20id%3D%22toc-hId-211341750%22%3E%26nbsp%3B%3C%2FH2%3E%0A%3CH2%20id%3D%22toc-hId--1598112549%22%20id%3D%22toc-hId--1596112713%22%3E%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%8B%E3%82%89%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%B8%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%BB%A2%E9%80%81%E3%81%99%E3%82%8B%3C%2FH2%3E%0A%3CP%3Eroot%40localhost%3A~%23%20restool%20dpdmai%20create%20--num-queues%3D8%20--priorities%3D2%2C5%3C%2FP%3E%0A%3CP%3Edpdmai.0%20%E3%81%AF%20dprc.1%20%E3%81%AE%E4%B8%8B%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20restool%20dprc%20assign%20dprc.1%20--object%3Ddpdmai.0--plugged%3D1%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%20%22dpdmai.0%22%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fdevice%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%20'7%204%201%207'%20%26gt%3B%20%2Fproc%2Fsys%2Fkernel%2Fprintk%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%201%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fdmatest_option%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%2010%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fiterations%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%204096%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Ftest_buf_size%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%201%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fthreads_per_chan%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%201%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Frun%3C%2FP%3E%0A%3CP%3E%5B%20177.903819%5Ddmatest%3A%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%AF%201%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20%5B%20177.907636%5Ddmatest%3A%20len%2011%20save_mask%20ffff%20tmp_mask%202%3C%2FP%3E%0A%3CP%3E%5B%20178.927396%5Ddmatest%3A%20qdma-test-task%3A%20%E3%82%B5%E3%83%9E%E3%83%AA%E3%83%BC%2010%E5%80%8B%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%80%810%E5%80%8B%E3%81%AE%E5%A4%B1%E6%95%97%20303030%20iops%201212121%20KB%2Fs%201241212121%20B%2Fs%20(0)%3C%2FP%3E%0A%3CP%3E%5B%20178.937308%5Ddmatest%3A%20%E5%90%88%E8%A8%88%E9%95%B7%E3%81%95%2040960%20%E9%95%B7%E3%81%95%204096%3C%2FP%3E%0A%3CP%3E%5B%20178.941870%5Ddmatest%3A%20%E5%AE%9F%E8%A1%8C%E6%99%82%E9%96%93%2033%3C%2FP%3E%0A%3CP%3E%5B%20178.941870%5D%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%208%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fthreads_per_chan%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20echo%201%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Frun%3C%2FP%3E%0A%3CP%3E%5B%20273.731698%5Ddmatest%3A%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%AF%201%3C%2FP%3E%0A%3CP%3Eroot%40localhost%3A~%23%20%5B%20273.735625%5Ddmatest%3A%20len%2011%20save_mask%20ffff%20tmp_mask%202%3C%2FP%3E%0A%3CP%3E%5B%20274.767409%5Ddmatest%3A%20qdma-test-task%3A%20%E3%82%B5%E3%83%9E%E3%83%AA%E3%83%BC%2010%E5%80%8B%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%80%810%E5%80%8B%E3%81%AE%E5%A4%B1%E6%95%97%20357142%20iops%201428571%20KB%2Fs%201462857142%20B%2Fs%20(0)%3C%2FP%3E%0A%3CP%3E%5B%20274.777315%5Ddmatest%3A%20%E5%90%88%E8%A8%88%E9%95%B7%E3%81%95%2040960%20%E9%95%B7%E3%81%95%204096%3C%2FP%3E%0A%3CP%3E%5B%20274.781875%5Ddmatest%3A%20%E5%AE%9F%E8%A1%8C%E6%99%82%E9%96%93%2028%3C%2FP%3E%0A%3CP%3E%5B%20274.781875%5D%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CH2%20id%3D%22toc-hId-889400284%22%20id%3D%22toc-hId-891400120%22%3E%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%8B%E3%82%89PCIe%E3%81%B8%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%BB%A2%E9%80%81%E3%81%99%E3%82%8B%3C%2FH2%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20restool%20dpdmai%20create%20--num-queues%3D8%20--priorities%3D2%2C5%3C%2FP%3E%0A%3CP%3Edpdmai.0%20%E3%81%AF%20dprc.1%20%E3%81%AE%E4%B8%8B%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20restool%20dprc%20assign%20dprc.1%20--object%3Ddpdmai.0--plugged%3D1%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%20%22dpdmai.0%22%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fdevice%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%20'7%204%201%207'%20%26gt%3B%20%2Fproc%2Fsys%2Fkernel%2Fprintk%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%204096%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Ftest_buf_size%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%2010%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fiterations%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%202%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fdmatest_option%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%200x9040000000%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fpci_phys_addr%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%201%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Fprodu_task_number%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20echo%201%20%26gt%3B%20%2Fsys%2Fmodule%2Fdmatest%2Fparameters%2Frun%3C%2FP%3E%0A%3CP%3E%5B%20214.319248%5Ddmatest%3A%20%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%9E%E3%82%B9%E3%82%AF%201%3C%2FP%3E%0A%3CP%3Eroot%40lx2160ardb-rev2%3A~%23%20%5B%20214.322864%5Ddmatest%3A%20len%2011%20save_mask%20ffff%20tmp_mask%202%3C%2FP%3E%0A%3CP%3E%5B%20214.330187%5Ddmatest%3A%20pcie_phy_base%20%3A%209040000000%20pcie_virt_base%20%3A%200000000014415a49%3C%2FP%3E%0A%3CP%3E%5B%20215.355448%5Ddmatest%3A%20qdma-test-task%3A%20%E3%82%B5%E3%83%9E%E3%83%AA%E3%83%BC%2010%E5%9B%9E%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88%E3%80%810%E5%9B%9E%E3%81%AE%E5%A4%B1%E6%95%97%2026737%20iops%20106951%20KB%2Fs%20109518716%20B%2Fs%20(0)%3C%2FP%3E%0A%3CP%3E%5B%20215.365093%5Ddmatest%3A%20%E5%90%88%E8%A8%88%E9%95%B7%E3%81%95%2040960%20%E9%95%B7%E3%81%95%204096%3C%2FP%3E%0A%3CP%3E%5B%20215.369529%5Ddmatest%3A%20%E5%AE%9F%E8%A1%8C%E6%99%82%E9%96%93%20374%3C%2FP%3E%0A%3CP%3E%5B%20215.369529%5D%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3C%2FLINGO-BODY%3E
評価なし
バージョン履歴
最終更新日:
‎02-04-2026 08:27 PM
更新者: