Bug 19217 - [ANCK6.6.71-3 rc1][aarch64][倚天710机器]kernel-selftests测试套samples-bpf编译失败,报Cannot find a vmlinux for VMLINUX_BTF at any of " /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/vmlinux", build the kernel or set VMLINUX_BTF or VMLINUX
Summary: [ANCK6.6.71-3 rc1][aarch64][倚天710机器]kernel-selftests测试套samples-bpf编译失败,报Canno...
Status: RESOLVED FIXED
Alias: None
Product: Antest
Classification: Infrastructures
Component: 测试用例 (show other bugs) 测试用例
Version: unspecified
Hardware: aarch64 Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: zhangxinyi
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-03-05 18:08 UTC by zhixin01
Modified: 2025-03-17 11:27 UTC (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description zhixin01 alibaba_cloud_group 2025-03-05 18:08:55 UTC
[缺陷描述]:
kernel-selftests测试套samples-bpf编译失败,报Cannot find a vmlinux for VMLINUX_BTF at any of "  /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/vmlinux", build the kernel or set VMLINUX_BTF or VMLINUX

编译失败日志如下:
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/btf_dump.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/ringbuf.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/strset.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/linker.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/gen_loader.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/relo_core.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/usdt.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/zip.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/elf.o
  LD      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/staticobjs/libbpf-in.o
  LINK    /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/libbpf.a
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/libbpf.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/btf.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/libbpf_common.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/libbpf_legacy.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_helpers.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_tracing.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_endian.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_core_read.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/skel_internal.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/libbpf_version.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/usdt.bpf.h
  INSTALL /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_helper_defs.h
  INSTALL libbpf_headers
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/main.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/common.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/json_writer.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/gen.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/btf.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/xlated_dumper.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/btf_dumper.o
  CC      /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/disasm.o
  LINK    /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/samples/bpf/bpftool/bootstrap/bpftool
samples/bpf/Makefile:332: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/vmlinux", build the kernel or set VMLINUX_BTF or VMLINUX_H variable.  Stop.
make[1]: *** [/root/rpmbuild/BUILD/kernel-6.6.71-3_rc1.al8/linux-6.6.71-3_rc1.al8.aarch64/Makefile:1921: samples/bpf] Error 2
make: *** [Makefile:234: __sub-make] Error 2

[重现概率]:
必现

[重现环境]:
环境信息:倚天710机器
11.163.178.238

#uname -r
6.6.71-3_rc1.al8.aarch64

#cat /etc/os-release
NAME="Alibaba Cloud Linux"
VERSION="3 (Soaring Falcon)"
ID="alinux"
ID_LIKE="rhel fedora centos anolis"
VERSION_ID="3"
UPDATE_ID="10"
PLATFORM_ID="platform:al8"
PRETTY_NAME="Alibaba Cloud Linux 3 (Soaring Falcon)"
ANSI_COLOR="0;31"
HOME_URL="https://www.aliyun.com/"

#lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              128
On-line CPU(s) list: 0-127
Thread(s) per core:  1
Core(s) per socket:  128
Socket(s):           1
NUMA node(s):        2
Vendor ID:           ARM
BIOS Vendor ID:      T-HEAD
Model:               0
Model name:          Neoverse-N2
BIOS Model name:     Yitian710-128
Stepping:            r0p0
CPU MHz:             2750.000
BogoMIPS:            100.00
Hypervisor vendor:   Alibaba
Virtualization type: full
L1d cache:           64K
L1i cache:           64K
L2 cache:            1024K
L3 cache:            65536K
NUMA node0 CPU(s):   0-63
NUMA node1 CPU(s):   64-127
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh

#free -h
              total        used        free      shared  buff/cache   available
Mem:          125Gi       3.6Gi       121Gi        12Mi       1.0Gi       122Gi
Swap:         2.0Gi          0B       2.0Gi

#cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt2)/boot/vmlinuz-6.6.71-3_rc1.al8.aarch64 root=UUID=d0af582f-7147-41de-85e3-deb2e14cde99 ro biosdevname=0 rd.driver.pre=ahci iommu.passthrough=1 iommu.strict=0 nospectre_bhb ssbd=force-off systemd.unified_cgroup_hierarchy=0 cgroup.memory=nokmem console=ttyS0,115200 fsck.repair=yes crashkernel=0M-2G:0M,2G-256G:256M,256G-1024G:320M,1024G-:384M

#gcc --version
gcc (GCC) 12.3.0 20230508 (Red Hat 12.3.0-1)
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

[重现步骤]:
1、下载与内核版本匹配的kernel源码包
rpm -ivh  xxx.src.rpm  默认安装到/root
yum-builddep -y rpmbuild/SPECS/kernel.spec   自动安装前置依赖包  需要yum-utils
rpmbuild -bp ./rpmbuild/SPECS/kernel.spec   # 这个步骤会打相关的patch, 解压缩tar包,生成BUILD目录
2、编译测试代码
cd /root/rpmbuild/BUILD/kernel-xxx/linux-xxx
make defconfig
make headers_install
make modules_prepare
make M=samples/bpf

[期望结果]:
kernel-selftests测试套samples-bpf编译成功

[实际结果]:
samples-bpf编译失败
Comment 1 yunhe123 alibaba_cloud_group 2025-03-07 15:10:58 UTC
alinux3,6.6.71-3_rc1.al8.x86_64内核,V74机型编译也存在同样的问题:

  INSTALL /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_core_read.h
  INSTALL /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/skel_internal.h
  INSTALL /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/libbpf_version.h
  INSTALL /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/usdt.bpf.h
  INSTALL /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/libbpf/include/bpf/bpf_helper_defs.h
  INSTALL libbpf_headers
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/main.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/common.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/json_writer.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/gen.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/btf.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/xlated_dumper.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/btf_dumper.o
  CC      /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/disasm.o
  LINK    /var/tmp/tone/build/kernel-selftests/alk-source/samples/bpf/bpftool/bootstrap/bpftool
samples/bpf/Makefile:332: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /var/tmp/tone/build/kernel-selftests/alk-source/vmlinux", build the kernel or set VMLINUX_BTF or VMLINUX_H variable.  Stop.
make[1]: *** [/var/tmp/tone/build/kernel-selftests/alk-source/Makefile:1921: samples/bpf] Error 2
make: *** [Makefile:234: __sub-make] Error 2
Comment 2 zhangxinyi alibaba_cloud_group 2025-03-14 11:46:41 UTC
参考bpf编译方式可以编译通过
ln -s /lib/debug/lib/modules/$(uname -r)/vmlinux /lib/modules/$(uname -r)/build/
make KDIR=/lib/modules/$(uname -r)/build/ samples/bpf/
Comment 3 zhangxinyi alibaba_cloud_group 2025-03-14 14:30:41 UTC
需要export VMLINUX_BTF=/sys/kernel/btf/vmlinux
Comment 4 zhangxinyi alibaba_cloud_group 2025-03-17 11:27:07 UTC
export VMLINUX_BTF=/sys/kernel/btf/vmlinux 后编译解决