[问题简述] Anolis8 kernel-debug ck-4.19 aarch64环境nightly测试,blktests测试套nvme/002测试fail [复现步骤] 提前磁盘分好区 git clone https://github.com/osandov/blktests.git cd blktests/ make make install prefix=./run_blktests cd ./run_blktests export TEST_DEVS=/dev/nvme0n1p1 cd blktests/ ./check nvme/002 [期望结果] case pass [实际结果] [root@l57f12084 blktests]# ./check nvme/002 nvme/002 (create many subsystems and test discovery) [failed] runtime 66.959s ... 68.713s --- tests/nvme/002.out 2022-11-17 22:19:44.783827410 +0800 +++ /root/blktests/run_blktests/blktests/results/nodev/nvme/002.out.bad 2022-11-17 22:24:15.315827410 +0800 @@ -10,2994 +10,2994 @@ trtype: loop subnqn: blktests-subsystem-2 =====Discovery Log Entry 3====== -trtype: loop -subnqn: blktests-subsystem-3 +trtype: unrecognized +subnqn: ... (Run 'diff -u tests/nvme/002.out /root/blktests/run_blktests/blktests/results/nodev/nvme/002.out.bad' to see the entire diff) [测试环境] [root@l57f12084 blktests]# uname -r 4.19.91-540.git.31394c95a.an8.aarch64+debug [root@l57f12084 blktests]# cat /etc/redhat-release Anolis OS release 8.6 [root@l57f12084 blktests]# rpm -qa | grep mvme [root@l57f12084 blktests]# rpm -qa | grep nvme nvme-cli-1.16-3.an8.aarch64 [root@l57f12084 blktests]# lsmod | grep nvme nvme 77824 0 nvme_core 126976 1 nvme [root@l57f12084 blktests]# free -g total used free shared buff/cache available Mem: 657 20 635 0 1 633 Swap: 1 0 1 [root@l57f12084 blktests]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 329G 0 329G 0% /dev tmpfs 329G 0 329G 0% /dev/shm tmpfs 329G 11M 329G 1% /run tmpfs 329G 0 329G 0% /sys/fs/cgroup /dev/sda2 49G 5.3G 42G 12% / /dev/sda1 1022M 6.7M 1016M 1% /boot/efi tmpfs 66G 0 66G 0% /run/user/0 [root@l57f12084 blktests]# lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 96 On-line CPU(s) list: 0-95 Thread(s) per core: 1 Core(s) per socket: 48 Socket(s): 2 NUMA node(s): 1 Vendor ID: HiSilicon BIOS Vendor ID: HiSilicon Model: 0 Model name: Kunpeng-920 BIOS Model name: HUAWEI Kunpeng 920 5250 Stepping: 0x1 CPU max MHz: 2600.0000 CPU min MHz: 200.0000 BogoMIPS: 200.00 L1d cache: 64K L1i cache: 64K L2 cache: 512K L3 cache: 24576K NUMA node0 CPU(s): 0-95 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
以前的版本也出同样的问题,非引入的regression。
问题已定位,待提将修复代码合并到4.19分支。 根因: nvme target在处理dicovery的get log page命令时没有处理offset字段,导致每次回复host的数据都是一样的,最终看到的现象就是host侧最多只能看到3个controller。
already fixed. https://gitee.com/anolis/cloud-kernel/pulls/1018
merged: https://gitee.com/anolis/cloud-kernel/pulls/1018