• Barry Song's avatar
    selftests/dma: add test application for DMA_MAP_BENCHMARK · 76793257
    Barry Song authored
    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: default avatarBarry Song <song.bao.hua@hisilicon.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    76793257
dma_map_benchmark.c 2.94 KB