Hello Jens, This patchset adds ublk kernel selftests, which is very handy for developer for verifying kernel change, especially ublk heavily depends on io_uring subsystem. Also it provides template for target implementation. Please consider it for v6.15. The 1st patch adds one ublk utility and one entry test. The 2nd patch adds test over file backed ublk. The 3rd patch adds test for ublk zero copy. How to run: - make install - make headers_install INSTALL_HDR_PATH=/usr # in case UAPI is changed - reboot - make -C tools/testing/selftests TARGETS=ublk run_test Thanks, V3: - re-organize code, and move target code into standalone source file - fix one error handling bug - add licence tag - add dma limit for zero copy file backed target - kill checkpatch ERROR V2: - fix one sqe allocation bug, so ublk zero copy with io_link can pass - dump log in case of error - add one more test for mkfs/mount on zero copy Ming Lei (3): selftests: ublk: add kernel selftests for ublk selftests: ublk: add file backed ublk selftests: ublk: add ublk zero copy test MAINTAINERS | 1 + tools/testing/selftests/Makefile | 1 + tools/testing/selftests/ublk/.gitignore | 3 + tools/testing/selftests/ublk/Makefile | 16 + tools/testing/selftests/ublk/config | 1 + tools/testing/selftests/ublk/file_backed.c | 220 ++++ tools/testing/selftests/ublk/kublk.c | 1110 ++++++++++++++++++ tools/testing/selftests/ublk/kublk.h | 326 +++++ tools/testing/selftests/ublk/null.c | 38 + tools/testing/selftests/ublk/test_common.sh | 113 ++ tools/testing/selftests/ublk/test_loop_01.sh | 31 + tools/testing/selftests/ublk/test_loop_02.sh | 22 + tools/testing/selftests/ublk/test_loop_03.sh | 33 + tools/testing/selftests/ublk/test_loop_04.sh | 22 + tools/testing/selftests/ublk/test_null_01.sh | 19 + 15 files changed, 1956 insertions(+) create mode 100644 tools/testing/selftests/ublk/.gitignore create mode 100644 tools/testing/selftests/ublk/Makefile create mode 100644 tools/testing/selftests/ublk/config create mode 100644 tools/testing/selftests/ublk/file_backed.c create mode 100644 tools/testing/selftests/ublk/kublk.c create mode 100644 tools/testing/selftests/ublk/kublk.h create mode 100644 tools/testing/selftests/ublk/null.c create mode 100755 tools/testing/selftests/ublk/test_common.sh create mode 100755 tools/testing/selftests/ublk/test_loop_01.sh create mode 100755 tools/testing/selftests/ublk/test_loop_02.sh create mode 100755 tools/testing/selftests/ublk/test_loop_03.sh create mode 100755 tools/testing/selftests/ublk/test_loop_04.sh create mode 100755 tools/testing/selftests/ublk/test_null_01.sh -- 2.47.0