dma-mapping: benchmark: modify the framework to adapt to more map modes

This patch adjusts the DMA map benchmark framework to make the DMA
map benchmark framework more flexible and adaptable to other mapping
modes in the future. By abstracting the framework into five interfaces:
prepare, unprepare, initialize_data, do_map, and do_unmap.
The new map schema can be introduced more easily
without major modifications to the existing code structure.

Reviewed-by: Barry Song <baohua@kernel.org>
Signed-off-by: Qinxin Xia <xiaqinxin@huawei.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20260225093800.3625054-2-xiaqinxin@huawei.com
This commit is contained in:
Qinxin Xia
2026-02-25 17:37:58 +08:00
committed by Marek Szyprowski
parent 6de23f81a5
commit 9cc60ec453
2 changed files with 115 additions and 24 deletions

View File

@@ -17,6 +17,11 @@
#define DMA_MAP_TO_DEVICE 1
#define DMA_MAP_FROM_DEVICE 2
enum {
DMA_MAP_BENCH_SINGLE_MODE,
DMA_MAP_BENCH_MODE_MAX
};
struct map_benchmark {
__u64 avg_map_100ns; /* average map latency in 100ns */
__u64 map_stddev; /* standard deviation of map latency */
@@ -29,7 +34,8 @@ struct map_benchmark {
__u32 dma_dir; /* DMA data direction */
__u32 dma_trans_ns; /* time for DMA transmission in ns */
__u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */
__u8 expansion[76]; /* For future use */
__u8 map_mode; /* the mode of dma map */
__u8 expansion[75]; /* For future use */
};
#endif /* _UAPI_DMA_BENCHMARK_H */