selftests/dma: add test application for DMA_MAP_BENCHMARK
authorBarry Song <song.bao.hua@hisilicon.com>
Mon, 16 Nov 2020 06:08:48 +0000 (19:08 +1300)
committerChristoph Hellwig <hch@lst.de>
Fri, 27 Nov 2020 09:33:42 +0000 (10:33 +0100)
commit7679325702c90aecd393cd7cde685576c14489c0
treef94582356bd5ab05baf6d1719f1a4a1a5eeafe3c
parent65789daa8087e125927230ccb7e1eab13999b0cf
selftests/dma: add test application for DMA_MAP_BENCHMARK

This patch provides the test application for DMA_MAP_BENCHMARK.

Before running the test application, we need to bind a device to dma_map_
benchmark driver. For example, unbind "xxx" from its original driver and
bind to dma_map_benchmark:

echo dma_map_benchmark > /sys/bus/platform/devices/xxx/driver_override
echo xxx > /sys/bus/platform/drivers/xxx/unbind
echo xxx > /sys/bus/platform/drivers/dma_map_benchmark/bind

Another example for PCI devices:
echo dma_map_benchmark > /sys/bus/pci/devices/0000:00:01.0/driver_override
echo 0000:00:01.0 > /sys/bus/pci/drivers/xxx/unbind
echo 0000:00:01.0 > /sys/bus/pci/drivers/dma_map_benchmark/bind

The below command will run 16 threads on numa node 0 for 10 seconds on
the device bound to dma_map_benchmark platform_driver or pci_driver:
./dma_map_benchmark -t 16 -s 10 -n 0
dma mapping benchmark: threads:16 seconds:10
average map latency(us):1.1 standard deviation:1.9
average unmap latency(us):0.5 standard deviation:0.8

Cc: Will Deacon <will@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Barry Song <song.bao.hua@hisilicon.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
MAINTAINERS
tools/testing/selftests/dma/Makefile [new file with mode: 0644]
tools/testing/selftests/dma/config [new file with mode: 0644]
tools/testing/selftests/dma/dma_map_benchmark.c [new file with mode: 0644]