[缺陷描述]: kernelselftest新增失败用例tdx:tdx_guest_test,此用例为今日nightly新增用例,之前没有此用例; 失败日志如下: # ./tdx_guest_test TAP version 13 1..1 # Starting 1 tests from 1 test cases. # RUN global.verify_report ... # tdx_guest_test.c:138:verify_report:Expected 0 (0) < devfd (-1) # verify_report: Test terminated by assertion # FAIL global.verify_report not ok 1 global.verify_report # FAILED: 0 / 1 tests passed. # Totals: pass:0 fail:1 xfail:0 xpass:0 skip:0 error:0 strace日志: # strace ./tdx_guest_test execve("./tdx_guest_test", ["./tdx_guest_test"], 0xffffcc4affd0 /* 26 vars */) = 0 brk(NULL) = 0x3a9ec000 brk(0x3a9ecb30) = 0x3a9ecb30 uname({sysname="Linux", nodename="VM20200706-19", ...}) = 0 readlinkat(AT_FDCWD, "/proc/self/exe", "/tmp/tone/run/kernel-selftests/t"..., 4096) = 49 brk(0x3aa0db30) = 0x3aa0db30 brk(0x3aa0e000) = 0x3aa0e000 mprotect(0x48f000, 4096, PROT_READ) = 0 mmap(NULL, 1024, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0) = 0xffff8a8cd000 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0), ...}) = 0 write(1, "TAP version 13\n", 15TAP version 13 ) = 15 write(1, "1..1\n", 51..1 ) = 5 write(1, "# Starting 1 tests from 1 test c"..., 38# Starting 1 tests from 1 test cases. ) = 38 write(1, "# RUN global.verify_r"..., 42# RUN global.verify_report ... ) = 42 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x3a9ec0d0) = 15634 # tdx_guest_test.c:138:verify_report:Expected 0 (0) < devfd (-1) rt_sigaction(SIGALRM, {sa_handler=0x400ab0, sa_mask=[], sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=30, tv_usec=0}}, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=0, tv_usec=0}}) = 0 wait4(15634, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGABRT && WCOREDUMP(s)}], 0, NULL) = 15634 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_DUMPED, si_pid=15634, si_uid=0, si_status=SIGABRT, si_utime=0, si_stime=0} --- setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=0, tv_usec=0}}, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=29, tv_usec=779319}}) = 0 rt_sigaction(SIGALRM, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, NULL, 8) = 0 write(2, "# verify_report: Test terminated"..., 46# verify_report: Test terminated by assertion ) = 46 write(1, "# FAIL global.verify_r"..., 38# FAIL global.verify_report ) = 38 write(1, "not ok 1 global.verify_report\n", 30not ok 1 global.verify_report ) = 30 munmap(0xffff8a8cd000, 1024) = 0 write(1, "# FAILED: 0 / 1 tests passed.\n", 30# FAILED: 0 / 1 tests passed. ) = 30 write(1, "# Totals: pass:0 fail:1 xfail:0 "..., 55# Totals: pass:0 fail:1 xfail:0 xpass:0 skip:0 error:0 ) = 55 exit_group(1) = ? +++ exited with 1 +++ [重现概率]: 必现 [重现环境]: 内核: # uname -r 5.10.134-956.git.f4a20a6d6.al8.aarch64 # cat /etc/os-release NAME="Alibaba Cloud Linux" VERSION="3 (Soaring Falcon)" ID="alinux" ID_LIKE="rhel fedora centos" VERSION_ID="3" PLATFORM_ID="platform:al8" PRETTY_NAME="Alibaba Cloud Linux 3 (Soaring Falcon)" ANSI_COLOR="0;31" HOME_URL="https://www.aliyun.com/" CPU信息: # lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per cluster: 4 Socket(s): 4 Cluster(s): 1 NUMA node(s): 1 Vendor ID: HiSilicon BIOS Vendor ID: Alibaba Cloud Model: 0 Model name: Kunpeng-920 BIOS Model name: virt-rhel7.6.0 Stepping: 0x1 BogoMIPS: 200.00 NUMA node0 CPU(s): 0-3 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm 内存: # free -h total used free shared buff/cache available Mem: 15Gi 419Mi 13Gi 4.0Mi 1.5Gi 14Gi Swap: 0B 0B 0B [期望结果]: 用例执行成功 [实际结果]: 用例执行失败
Anolis8 5.10 x86 nightly存在同样的问题,可能是因为CONFIG_INTEL_TDX_GUEST config未打开,缺少module导致的fail 测试日志: # ./tdx_guest_test TAP version 13 1..1 # Starting 1 tests from 1 test cases. # RUN global.verify_report ... # tdx_guest_test.c:138:verify_report:Expected 0 (0) < devfd (-1) # verify_report: Test terminated by assertion # FAIL global.verify_report not ok 1 global.verify_report # FAILED: 0 / 1 tests passed. # Totals: pass:0 fail:1 xfail:0 xpass:0 skip:0 error:0 环境配置: # grep -i tdx /boot/config-5.10.134-10.git.f4a20a6d6.an8.x86_64 # CONFIG_INTEL_TDX_GUEST is not set CONFIG_KVM_INTEL_TDX=y
Anolis8 5.10 aarch nightly存在同样的问题,日志如下: # ./tdx_guest_test TAP version 13 1..1 # Starting 1 tests from 1 test cases. # RUN global.verify_report ... # tdx_guest_test.c:138:verify_report:Expected 0 (0) < devfd (-1) # verify_report: Test terminated by assertion # FAIL global.verify_report not ok 1 global.verify_report # FAILED: 0 / 1 tests passed. # Totals: pass:0 fail:1 xfail:0 xpass:0 skip:0 error:0
这个问题在Anolis8 ANCK-5.10-15 x86版本仍然存在 # uname -r 5.10.134-15_rc1.an8.x86_64 # grep -i tdx /boot/config-5.10.134-15_rc1.an8.x86_64 # CONFIG_INTEL_TDX_GUEST is not set CONFIG_KVM_INTEL_TDX=y
本来就不是tdx guest,这个case失败是预期的。关掉了
失败为预期,作为已知问题记录;