Re: [PATCH bpf-next v4 3/3] bpf: treewide: Annotate BPF kfuncs in BTF

From: kernel test robot
Date: Sun Feb 04 2024 - 21:42:27 EST




Hello,

kernel test robot noticed "WARNING:at_kernel/bpf/btf.c:#register_btf_kfunc_id_set" on:

commit: 918c4c7dda155568c619b4082fa83ca90ab578a6 ("[PATCH bpf-next v4 3/3] bpf: treewide: Annotate BPF kfuncs in BTF")
url: https://github.com/intel-lab-lkp/linux/commits/Daniel-Xu/bpf-btf-Support-flags-for-BTF_SET8-sets/20240129-092732
base: https://git.kernel.org/cgit/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/all/e55150ceecbf0a5d961e608941165c0bee7bc943.1706491398.git.dxu@xxxxxxxxx/
patch subject: [PATCH bpf-next v4 3/3] bpf: treewide: Annotate BPF kfuncs in BTF

in testcase: boot

compiler: clang-17
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

(please refer to attached dmesg/kmsg for entire log/backtrace)


+-----------------------------------------------------------------+------------+------------+
| | 05221438c4 | 918c4c7dda |
+-----------------------------------------------------------------+------------+------------+
| WARNING:at_kernel/bpf/btf.c:#register_btf_kfunc_id_set | 0 | 7 |
| EIP:register_btf_kfunc_id_set | 0 | 7 |
| calltrace:do_softirq_own_stack | 0 | 7 |
+-----------------------------------------------------------------+------------+------------+


If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202402041610.775e7f75-lkp@xxxxxxxxx


[ 49.044594][ T1] ------------[ cut here ]------------
[ 49.045857][ T1] WARNING: CPU: 1 PID: 1 at kernel/bpf/btf.c:8048 register_btf_kfunc_id_set (??:?)
[ 49.048024][ T1] Modules linked in:
[ 49.048925][ T1] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W 6.8.0-rc1-00457-g918c4c7dda15 #6
[ 49.051230][ T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 49.053616][ T1] EIP: register_btf_kfunc_id_set (??:?)
[ 49.054969][ T1] Code: 04 01 75 0b b8 ea ff ff ff 83 3a 00 74 1c c3 b9 0d 00 00 00 83 f8 20 77 07 8b 0c 85 28 a2 71 d7 55 89 e5 e8 13 00 00 00 5d c3 <0f> 0b c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 55 89 e5 53 57
All code
========
0: 04 01 add $0x1,%al
2: 75 0b jne 0xf
4: b8 ea ff ff ff mov $0xffffffea,%eax
9: 83 3a 00 cmpl $0x0,(%rdx)
c: 74 1c je 0x2a
e: c3 retq
f: b9 0d 00 00 00 mov $0xd,%ecx
14: 83 f8 20 cmp $0x20,%eax
17: 77 07 ja 0x20
19: 8b 0c 85 28 a2 71 d7 mov -0x288e5dd8(,%rax,4),%ecx
20: 55 push %rbp
21: 89 e5 mov %esp,%ebp
23: e8 13 00 00 00 callq 0x3b
28: 5d pop %rbp
29: c3 retq
2a:* 0f 0b ud2 <-- trapping instruction
2c: c3 retq
2d: 90 nop
2e: 90 nop
2f: 90 nop
30: 90 nop
31: 90 nop
32: 90 nop
33: 90 nop
34: 90 nop
35: 90 nop
36: 90 nop
37: 90 nop
38: 90 nop
39: 90 nop
3a: 90 nop
3b: 55 push %rbp
3c: 89 e5 mov %esp,%ebp
3e: 53 push %rbx
3f: 57 push %rdi

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: c3 retq
3: 90 nop
4: 90 nop
5: 90 nop
6: 90 nop
7: 90 nop
8: 90 nop
9: 90 nop
a: 90 nop
b: 90 nop
c: 90 nop
d: 90 nop
e: 90 nop
f: 90 nop
10: 90 nop
11: 55 push %rbp
12: 89 e5 mov %esp,%ebp
14: 53 push %rbx
15: 57 push %rdi
[ 49.059550][ T1] EAX: ffffffea EBX: 00000000 ECX: d9356fb0 EDX: d7c2b154
[ 49.061229][ T1] ESI: 00000000 EDI: 0000019a EBP: c028dc48 ESP: c028dc38
[ 49.062886][ T1] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010246
[ 49.064685][ T1] CR0: 80050033 CR2: 00000000 CR3: 189ab000 CR4: 000406f0
[ 49.066358][ T1] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 49.068020][ T1] DR6: fffe0ff0 DR7: 00000400
[ 49.069132][ T1] Call Trace:
[ 49.069902][ T1] ? show_regs (??:?)
[ 49.070890][ T1] ? register_btf_kfunc_id_set (??:?)
[ 49.072187][ T1] ? __warn (??:?)
[ 49.073151][ T1] ? register_btf_kfunc_id_set (??:?)
[ 49.074480][ T1] ? register_btf_kfunc_id_set (??:?)
[ 49.075751][ T1] ? report_bug (??:?)
[ 49.076858][ T1] ? exc_overflow (??:?)
[ 49.077925][ T1] ? handle_bug (traps.c:?)
[ 49.078947][ T1] ? exc_invalid_op (??:?)
[ 49.080030][ T1] ? handle_exception (init_task.c:?)
[ 49.081174][ T1] ? get_seg_base_limit (insn-eval.c:?)
[ 49.082393][ T1] ? mutex_lock_killable_nested (??:?)
[ 49.083707][ T1] ? exc_overflow (??:?)
[ 49.084782][ T1] ? register_btf_kfunc_id_set (??:?)
[ 49.086126][ T1] ? mutex_lock_killable_nested (??:?)
[ 49.087468][ T1] ? exc_overflow (??:?)
[ 49.088520][ T1] ? register_btf_kfunc_id_set (??:?)
[ 49.089864][ T1] ? cubictcp_register (tcp_cubic.c:?)
[ 49.090991][ T1] do_one_initcall (??:?)
[ 49.092136][ T1] ? pvclock_clocksource_read_nowd (??:?)
[ 49.093607][ T1] ? __lock_acquire (lockdep.c:?)
[ 49.094756][ T1] ? kvm_sched_clock_read (kvmclock.c:?)
[ 49.095985][ T1] ? sched_clock_noinstr (??:?)
[ 49.097144][ T1] ? local_clock_noinstr (??:?)
[ 49.098393][ T1] ? __lock_acquire (lockdep.c:?)
[ 49.099575][ T1] ? sched_clock_noinstr (??:?)
[ 49.100746][ T1] ? local_clock_noinstr (??:?)
[ 49.101997][ T1] ? pvclock_clocksource_read_nowd (??:?)
[ 49.103439][ T1] ? kvm_sched_clock_read (kvmclock.c:?)
[ 49.104673][ T1] ? pvclock_clocksource_read_nowd (??:?)
[ 49.106095][ T1] ? kvm_sched_clock_read (kvmclock.c:?)
[ 49.107310][ T1] ? sched_clock_noinstr (??:?)
[ 49.109773][ T1] ? local_clock_noinstr (??:?)
[ 49.111018][ T1] ? __this_cpu_preempt_check (??:?)
[ 49.112289][ T1] ? irqtime_account_irq (??:?)
[ 49.113534][ T1] ? irqtime_account_delta (build_policy.c:?)
[ 49.114812][ T1] ? irqentry_exit (??:?)
[ 49.115860][ T1] ? __this_cpu_preempt_check (??:?)
[ 49.117126][ T1] ? lockdep_hardirqs_on (??:?)
[ 49.118370][ T1] ? sysvec_reboot (??:?)
[ 49.119450][ T1] ? trace_hardirqs_on (??:?)
[ 49.120623][ T1] ? irqentry_exit (??:?)
[ 49.121703][ T1] ? sysvec_reschedule_ipi (??:?)
[ 49.122962][ T1] ? handle_exception (init_task.c:?)
[ 49.124130][ T1] ? strlen (??:?)
[ 49.125054][ T1] ? next_arg (??:?)
[ 49.126086][ T1] ? parse_args (??:?)
[ 49.127134][ T1] ? tcp_diag_init (tcp_cubic.c:?)
[ 49.128257][ T1] do_initcall_level (main.c:?)
[ 49.129398][ T1] ? kernel_init (main.c:?)
[ 49.130474][ T1] do_initcalls (main.c:?)
[ 49.131494][ T1] do_basic_setup (main.c:?)
[ 49.132558][ T1] kernel_init_freeable (main.c:?)
[ 49.133781][ T1] ? rest_init (main.c:?)
[ 49.134848][ T1] ? rest_init (main.c:?)
[ 49.135885][ T1] kernel_init (main.c:?)
[ 49.136958][ T1] ret_from_fork (??:?)
[ 49.137979][ T1] ret_from_fork_asm (??:?)
[ 49.139078][ T1] entry_INT80_32 (init_task.c:?)
[ 49.140171][ T1] irq event stamp: 16737757
[ 49.141202][ T1] hardirqs last enabled at (16737765): console_unlock (??:?)
[ 49.143298][ T1] hardirqs last disabled at (16737774): console_unlock (??:?)
[ 49.145355][ T1] softirqs last enabled at (16737610): do_softirq_own_stack (??:?)
[ 49.147553][ T1] softirqs last disabled at (16737605): do_softirq_own_stack (??:?)
[ 49.149757][ T1] ---[ end trace 0000000000000000 ]---
[ 49.151671][ T1] NET: Registered PF_INET6 protocol family
[ 49.156896][ T1] Segment Routing with IPv6
[ 49.158068][ T1] In-situ OAM (IOAM) with IPv6
[ 49.159300][ T1] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 49.162798][ T1] NET: Registered PF_PACKET protocol family
[ 49.164686][ T1] 9pnet: Installing 9P2000 support
[ 49.166257][ T1] start plist test
[ 49.168281][ T1] end plist test
[ 49.173855][ T1] IPI shorthand broadcast: enabled
[ 49.175165][ C0] ... APIC ID: 00000000 (0)
[ 49.176383][ C0] ... APIC VERSION: 00050014
[ 49.177486][ C0] 0000000000000000000000000000000000000000000000000000000000000000
[ 49.177486][ C0] 0000000000000000000000000000000000000000000000000000000008001000


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240204/202402041610.775e7f75-lkp@xxxxxxxxx



--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki