On 3/19/25 3:26 AM, Ming Lei wrote: > Hi Jens, > > The 1st patch removes the liburing ublk test source, and the 2nd patch > adds the test back with the kernel ublk selftest source. > > The original test case is covered, and io_uring kernel fixed buffer and > ublk zero copy is covered too. > > Now the ublk source code is one generic ublk server implementation, and > test code is shell script, this way is flexible & easy to add new tests. Fails locally here, I think you'll need a few ifdefs for having a not completely uptodate header: ublk//kublk.c: In function ?cmd_dev_get_features?: ublk//kublk.c:997:30: error: ?UBLK_F_USER_RECOVERY_FAIL_IO? undeclared (first use in this function); did you mean ?UBLK_F_USER_RECOVERY_REISSUE?? 997 | [const_ilog2(UBLK_F_USER_RECOVERY_FAIL_IO)] = "RECOVERY_FAIL_IO", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ With #ifndef UBLK_F_USER_RECOVERY_FAIL_IO #define UBLK_F_USER_RECOVERY_FAIL_IO (1ULL << 9) #endif added it works as expected for me, but might not be a bad idea to include a few more? Looks like there's a good spot for it in kublk.h where there's already something for UBLK_U_IO_REGISTER_IO_BUF. Outside of that, when running this in my usual vm testing, I see: Running test ublk/test_stress_02.sh modprobe: FATAL: Module ublk_drv not found in directory /lib/modules/6.14.0-rc7-00360-ge07e8363c5e8 as I have ublk built-in. The test still runs, but would be nice to get rid of that complaint. -- Jens Axboe