Bug 5562 - [alinux3][x86_64/aarch64][nightly & Anck-5.10-15]kernelselftest:bpf目录编译失败,导致net.udpgro_bench.sh测试用例失败
Summary: [alinux3][x86_64/aarch64][nightly & Anck-5.10-15]kernelselftest:bpf目录编译失败,导致n...
Status: CLOSED FIXED
Alias: None
Product: ANCK 5.10 Dev
Classification: ANCK
Component: bpf (show other bugs) bpf
Version: 5.10.y-15
Hardware: All Linux
: P3-Medium S3-normal
Target Milestone: rc
Assignee: sdwzhz
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-06-19 11:08 UTC by wangpingping
Modified: 2023-06-28 15:29 UTC (History)
11 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wangpingping alibaba_cloud_group 2023-06-19 11:08:38 UTC
[缺陷描述]:
kernelselftest:bpf目录编译失败,导致net.udpgro_bench.sh测试用例失败;
从2023.6.16晚上的任务出现此问题;

可能与此提交有关:https://gitee.com/anolis/cloud-kernel/pulls/1762/files


失败日志如下:
# ./udpgro_bench.sh
Missing xdp_dummy helper. Build bpf selftest first

bpf目录编译失败日志如下:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c: In function ‘test_load’:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:35:50: error: ‘struct <anonymous>’ has no member named ‘ops’
   35 |  link = bpf_map__attach_struct_ops(smc_skel->maps.ops);
      |                                                  ^
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c: In function ‘test_update’:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:54:50: error: ‘struct <anonymous>’ has no member named ‘accept’
   54 |  link = bpf_map__attach_struct_ops(smc_skel->maps.accept);
      |                                                  ^
In file included from /root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:5:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:59:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   59 |  ASSERT_EQ(smc_skel->bss->accept_cnt, 1, "accept_cnt");
      |                    ^~
./test_progs.h:135:9: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |         ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:59:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   59 |  ASSERT_EQ(smc_skel->bss->accept_cnt, 1, "accept_cnt");
      |                    ^~
./test_progs.h:135:27: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |                           ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:61:8: warning: implicit declaration of function ‘bpf_link__update_map’; did you mean ‘bpf_link_update’? [-Wimplicit-function-declaration]
   61 |  err = bpf_link__update_map(link, smc_skel->maps.drop);
      |        ^~~~~~~~~~~~~~~~~~~~
      |        bpf_link_update
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:61:49: error: ‘struct <anonymous>’ has no member named ‘drop’
   61 |  err = bpf_link__update_map(link, smc_skel->maps.drop);
      |                                                 ^
In file included from /root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:5:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:65:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   65 |  ASSERT_EQ(smc_skel->bss->accept_cnt, 1, "accept_cnt");
      |                    ^~
./test_progs.h:135:9: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |         ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:65:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   65 |  ASSERT_EQ(smc_skel->bss->accept_cnt, 1, "accept_cnt");
      |                    ^~
./test_progs.h:135:27: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |                           ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:66:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   66 |  ASSERT_EQ(smc_skel->bss->drop_cnt, 1, "drop_cnt");
      |                    ^~
./test_progs.h:135:9: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |         ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:66:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   66 |  ASSERT_EQ(smc_skel->bss->drop_cnt, 1, "drop_cnt");
      |                    ^~
./test_progs.h:135:27: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |                           ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c: In function ‘test_ref’:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:83:50: error: ‘struct <anonymous>’ has no member named ‘accept’
   83 |  link = bpf_map__attach_struct_ops(smc_skel->maps.accept);
      |                                                  ^
In file included from /root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:5:
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:94:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   94 |  ASSERT_EQ(smc_skel->bss->accept_release_cnt, 1, "accept_release_cnt");
      |                    ^~
./test_progs.h:135:9: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |         ^~~~~~
/root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/prog_tests/bpf_smc.c:94:20: error: ‘struct bpf_smc’ has no member named ‘bss’
   94 |  ASSERT_EQ(smc_skel->bss->accept_release_cnt, 1, "accept_release_cnt");
      |                    ^~
./test_progs.h:135:27: note: in definition of macro ‘ASSERT_EQ’
  135 |  typeof(actual) ___act = (actual);    \
      |                           ^~~~~~
make: *** [Makefile:403: /root/rpmbuild/BUILD/kernel-5.10.134-966.git.a81fa9db4.al8/linux-5.10.134-966.git.a81fa9db4.al8.aarch64/tools/testing/selftests/bpf/bpf_smc.test.o] Error 1

[复现概率]:
必现

[复现环境]:
内核:
5.10.134-966.git.a81fa9db4.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       513Mi        13Gi       4.0Mi       1.7Gi        14Gi
Swap:            0B          0B          0B


[复现步骤]:	
下载当前内核 对应的kernel*src.rpm,
rpm -ivh kernel*.src.rpm
which yum-builddep || yum install -y yum-utils
which rpmbuild || yum install -y rpm-build
yum-builddep -y $rpmbuild_dir/SPECS/kernel.spec
rpmbuild -bp $rpmbuild_dir/SPECS/kernel.spec

cd /root/rpmbuild/BUILD/kernel*/linux*/tools/testing/selftests
cd bpf 
make

[预期结果]:
用例执行成功

[实际结果]:
bpf目录编译失败,导致用例执行失败
Comment 1 yunhe123 alibaba_cloud_group 2023-06-19 11:12:53 UTC
[Anolis8.8][aarch64][社区nightly]kernel-selftests测试套bpf目录编译同样失败,也导致了bpf相关用例均未执行,且导致net目录下udpgro_bench.sh和udpgro.sh用例失败,日志如下:
# cd run/kernel-selftests/net
[root@qibo-anolis8-nightly-func-arm-4 net]# ./udpgro_bench.sh
Missing xdp_dummy helper. Build bpf selftest first
[root@qibo-anolis8-nightly-func-arm-4 net]# ./udpgro.sh
Missing xdp_dummy helper. Build bpf selftest first
Comment 2 wangpingping alibaba_cloud_group 2023-06-19 17:18:54 UTC
Anck-5.10-15版本有同样失败;
内核:5.10.134-15_rc1.al8.aarch64
Comment 3 shanxifanshi alibaba_cloud_group 2023-06-20 09:50:13 UTC
Anolis8 Anck-5.10-15版本存在同样的kernel-selftests bpf目录编译失败问题

# uname -r
5.10.134-15_rc1.an8.x86_64
Comment 4 sdwzhz alibaba_cloud_group 2023-06-20 11:55:17 UTC
已知问题,使用了for社区的patch,修复中。
Comment 5 小龙 admin 2023-06-20 18:57:11 UTC
The PR Link: https://gitee.com/anolis/cloud-kernel/pulls/1768
Comment 6 sdwzhz alibaba_cloud_group 2023-06-21 15:12:35 UTC
https://gitee.com/anolis/cloud-kernel/pulls/1768

已完成修复。
Comment 7 sdwzhz alibaba_cloud_group 2023-06-21 15:15:38 UTC
https://gitee.com/anolis/cloud-kernel/pulls/1768

已完成修复。
Comment 8 wangpingping alibaba_cloud_group 2023-06-28 15:29:23 UTC
最新的nightly内核,此用例已经pass,问题修复,故closed此缺陷;
net.udpgro_bench.sh  Pass		
net.udpgro.sh        Pass