Hi Jens, The 1st patch fixes UBLK_F_NEED_GET_DATA implementation in selftest ublk utility, meantime add test to cover this feature. The 2nd patch enhances check for register/unregister IO buffer uring command. The 3rd patch adds UBLK_F_AUTO_ZERO_COPY by registering zc buffer before delivering io command to ublk server and un-registering zc buffer when completing io command. This way not only improves zero copy perf, but also makes it much easier to use: - ublk/null: iops is improved by 50%(--auto_zc vs. -z, -q 2) - ublk server needn't to register/unregister io buffer uring_cmd any more, which is done automatically by ublk driver - ublk server zc buffer consumer OPs need to depend on register/unregister io buffer uring_cmd any more. Without this feature, buffer consumer OP has to respect the dependency by IOSQE_IO_LINK. The last patch adds function & stress tests for UBLK_F_AUTO_ZERO_COPY. Thanks, Ming Ming Lei (4): selftests: ublk: fix UBLK_F_NEED_GET_DATA ublk: enhance check for register/unregister io buffer command ublk: add feature UBLK_F_AUTO_ZERO_COPY selftests: ublk: support UBLK_F_AUTO_ZERO_COPY drivers/block/ublk_drv.c | 110 +++++++++++++++--- include/uapi/linux/ublk_cmd.h | 20 ++++ tools/testing/selftests/ublk/Makefile | 3 + tools/testing/selftests/ublk/file_backed.c | 9 +- tools/testing/selftests/ublk/kublk.c | 24 +++- tools/testing/selftests/ublk/kublk.h | 7 ++ tools/testing/selftests/ublk/null.c | 43 +++++-- tools/testing/selftests/ublk/stripe.c | 14 +-- .../testing/selftests/ublk/test_generic_07.sh | 25 ++++ .../testing/selftests/ublk/test_generic_08.sh | 28 +++++ .../testing/selftests/ublk/test_stress_03.sh | 6 + .../testing/selftests/ublk/test_stress_04.sh | 6 + .../testing/selftests/ublk/test_stress_05.sh | 8 ++ 13 files changed, 257 insertions(+), 46 deletions(-) create mode 100755 tools/testing/selftests/ublk/test_generic_07.sh create mode 100755 tools/testing/selftests/ublk/test_generic_08.sh -- 2.47.0