On 3/19/25 7:47 AM, Jens Axboe wrote: > 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. Oh, and looks like it should also skip the test if an argument is passed in. My usual setup has 4-5 devices/paths defined for testing, and tests that don't take a file argument should just skip. Forgot to mention, that unifying the selftests and liburing test is a really good idea! Will make it easier to sync them up and get coverage both ways. -- Jens Axboe