Hi Jens, The 1st patch adds generic_01.sh for checking if IO is dispatched in order. The 2nd ~ 7th patches clean up and simplify target implementation, add zc for for null, which is useful for evaluating/comparing perf. The 8th patch adds ublk/stripe target and two tests, which will be useful for verifying multiple IOs aiming at same fixed kernel buffer, also can be used for verifying vectored fixed kernel buffer in future if this feature can be supported. Ming Lei (8): selftests: ublk: add generic_01 for verifying sequential IO order selftests: ublk: add single sqe allocator helper selftests: ublk: increase max buffer size to 1MB selftests: ublk: move common code into common.c selftests: ublk: prepare for supporting stripe target selftests: ublk: enable zero copy for null target selftests: ublk: simplify loop io completion selftests: ublk: add stripe target tools/testing/selftests/ublk/Makefile | 9 +- tools/testing/selftests/ublk/common.c | 55 +++ tools/testing/selftests/ublk/file_backed.c | 167 ++++----- tools/testing/selftests/ublk/kublk.c | 33 +- tools/testing/selftests/ublk/kublk.h | 85 +++-- tools/testing/selftests/ublk/null.c | 72 +++- tools/testing/selftests/ublk/stripe.c | 318 ++++++++++++++++++ tools/testing/selftests/ublk/test_common.sh | 22 ++ .../testing/selftests/ublk/test_generic_01.sh | 44 +++ tools/testing/selftests/ublk/test_null_02.sh | 20 ++ .../testing/selftests/ublk/test_stripe_01.sh | 34 ++ .../testing/selftests/ublk/test_stripe_02.sh | 24 ++ tools/testing/selftests/ublk/trace/seq_io.bt | 25 ++ 13 files changed, 759 insertions(+), 149 deletions(-) create mode 100644 tools/testing/selftests/ublk/common.c create mode 100644 tools/testing/selftests/ublk/stripe.c create mode 100755 tools/testing/selftests/ublk/test_generic_01.sh create mode 100755 tools/testing/selftests/ublk/test_null_02.sh create mode 100755 tools/testing/selftests/ublk/test_stripe_01.sh create mode 100755 tools/testing/selftests/ublk/test_stripe_02.sh create mode 100644 tools/testing/selftests/ublk/trace/seq_io.bt -- 2.47.0