I also ran nvme/039 on the kernel v6.7 and observed a different failure symptom below. Old kernels do not have the sysfs attribute passthru_err_log_enabled, hence the failure. --------------------------------------------------------------------- nvme/039 => nvme0n1 (test error logging) [failed] runtime 5.570s ... 5.308s --- tests/nvme/039.out 2024-02-19 15:59:12.143488379 +0900 +++ /home/shin/Blktests/blktests/results/nvme0n1/nvme/039.out.bad 2024-02-19 16:23:02.669330853 +0900 @@ -1,7 +1,15 @@ Running nvme/039 +cat: /sys/class/nvme/nvme0/passthru_err_log_enabled: No such file or directory +cat: /sys/class/nvme/nvme0/nvme0n1/passthru_err_log_enabled: No such file or directory +tests/nvme/rc: line 1017: /sys/class/nvme/nvme0/passthru_err_log_enabled: Permission denied +tests/nvme/rc: line 1022: /sys/class/nvme/nvme0/nvme0n1/passthru_err_log_enabled: Permission denied Read(0x2) @ LBA 0, 1 blocks, Unrecovered Read Error (sct 0x2 / sc 0x81) DNR Read(0x2) @ LBA 0, 1 blocks, Unknown (sct 0x3 / sc 0x75) DNR ... (Run 'diff -u tests/nvme/039.out /home/shpin/Blktests/blktests/results/nvme0n1/nvme/039.out.bad' to see the entire diff) --------------------------------------------------------------------- Then the added tests should be executed only when the kernel has the sysfs attribute. If such control is introduced in the test case, the output of the test case will have variations and can not be compared with static 039.out file. Check for the added tests must be done by the test case in a different way. Another idea is to create another test case dedicated for the added tests. It will allow comparison with static out file. It also allow to use _require_test_dev_sysfs() helper function in device_requires() to check the sysfs attribute (ref: block/005). On the other hand, this approach will need to move more functions from nvme/039 to nvme/rc. Which way looks the better for you?
I would prefer to keep all the error logging tests within 039. I'll need to fake out the new test output if it is a pre-6.8 kernel.
Thanks, Alan