[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202601150350.ZftaCBVV-lkp@intel.com>
Date: Thu, 15 Jan 2026 03:39:53 +0800
From: kernel test robot <lkp@...el.com>
To: adubey@...ux.ibm.com, bpf@...r.kernel.org,
linuxppc-dev@...ts.ozlabs.org, linux-kselftest@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, hbathini@...ux.ibm.com,
sachinpb@...ux.ibm.com, venkat88@...ux.ibm.com, andrii@...nel.org,
eddyz87@...il.com, mykolal@...com, ast@...nel.org,
daniel@...earbox.net, martin.lau@...ux.dev, song@...nel.org,
yonghong.song@...ux.dev, john.fastabend@...il.com,
kpsingh@...nel.org, sdf@...ichev.me, haoluo@...gle.com,
jolsa@...nel.org, christophe.leroy@...roup.eu, naveen@...nel.org,
maddy@...ux.ibm.com, mpe@...erman.id.au, npiggin@...il.com,
memxor@...il.com, iii@...ux.ibm.com, shuah@...nel.org,
Abhishek Dubey <adubey@...ux.ibm.com>
Subject: Re: [PATCH v2 3/6] powerpc64/bpf: Tailcall handling with trampolines
Hi,
kernel test robot noticed the following build errors:
[auto build test ERROR on powerpc/next]
[also build test ERROR on powerpc/fixes linus/master v6.19-rc5 next-20260114]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/adubey-linux-ibm-com/powerpc64-bpf-Move-tail_call_cnt-to-bottom-of-stack-frame/20260114-195044
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
patch link: https://lore.kernel.org/r/20260114114450.30405-4-adubey%40linux.ibm.com
patch subject: [PATCH v2 3/6] powerpc64/bpf: Tailcall handling with trampolines
config: powerpc-randconfig-002-20260114 (https://download.01.org/0day-ci/archive/20260115/202601150350.ZftaCBVV-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260115/202601150350.ZftaCBVV-lkp@intel.com/reproduce)
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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601150350.ZftaCBVV-lkp@intel.com/
All errors (new ones prefixed by >>):
arch/powerpc/net/bpf_jit_comp.c: In function 'bpf_trampoline_setup_tail_call_info':
>> arch/powerpc/net/bpf_jit_comp.c:644:43: error: 'BPF_PPC_TAILCALL' undeclared (first use in this function); did you mean 'BPF_TAIL_CALL'?
644 | int tailcallinfo_offset = BPF_PPC_TAILCALL;
| ^~~~~~~~~~~~~~~~
| BPF_TAIL_CALL
arch/powerpc/net/bpf_jit_comp.c:644:43: note: each undeclared identifier is reported only once for each function it appears in
arch/powerpc/net/bpf_jit_comp.c: In function '__arch_prepare_bpf_trampoline':
arch/powerpc/net/bpf_jit_comp.c:850:41: error: 'BPF_PPC_TAILCALL' undeclared (first use in this function); did you mean 'BPF_TAIL_CALL'?
850 | bpf_frame_size += SZL + BPF_PPC_TAILCALL;
| ^~~~~~~~~~~~~~~~
| BPF_TAIL_CALL
vim +644 arch/powerpc/net/bpf_jit_comp.c
625
626 /*
627 * Refer the label 'Generated stack layout' in this file for actual stack
628 * layout during trampoline invocation.
629 *
630 * Refer __arch_prepare_bpf_trampoline() for stack component details.
631 *
632 * The tailcall count/reference is present in caller's stack frame. Its required
633 * to copy the content of tail_call_info before calling the actual function
634 * to which the trampoline is attached.
635 *
636 */
637
638 static void bpf_trampoline_setup_tail_call_info(u32 *image, struct codegen_context *ctx,
639 int func_frame_offset,
640 int bpf_dummy_frame_size, int r4_off)
641 {
642 if (IS_ENABLED(CONFIG_PPC64)) {
643 /* See bpf_jit_stack_tailcallinfo_offset() */
> 644 int tailcallinfo_offset = BPF_PPC_TAILCALL;
645 /*
646 * func_frame_offset = ...(1)
647 * bpf_dummy_frame_size + trampoline_frame_size
648 */
649 EMIT(PPC_RAW_LD(_R4, _R1, func_frame_offset));
650 EMIT(PPC_RAW_LD(_R3, _R4, -tailcallinfo_offset));
651
652 /*
653 * Setting the tail_call_info in trampoline's frame
654 * depending on if previous frame had value or reference.
655 */
656 EMIT(PPC_RAW_CMPLWI(_R3, MAX_TAIL_CALL_CNT));
657 PPC_COND_BRANCH(COND_GT, CTX_NIA(ctx) + 8);
658 EMIT(PPC_RAW_ADDI(_R3, _R4, bpf_jit_stack_tailcallinfo_offset(ctx)));
659 /*
660 * From ...(1) above:
661 * trampoline_frame_bottom = ...(2)
662 * func_frame_offset - bpf_dummy_frame_size
663 *
664 * Using ...(2) derived above:
665 * trampoline_tail_call_info_offset = ...(3)
666 * trampoline_frame_bottom - tailcallinfo_offset
667 *
668 * From ...(3):
669 * Use trampoline_tail_call_info_offset to write reference of main's
670 * tail_call_info in trampoline frame.
671 */
672 EMIT(PPC_RAW_STL(_R3, _R1, (func_frame_offset - bpf_dummy_frame_size)
673 - tailcallinfo_offset));
674
675 } else {
676 /* See bpf_jit_stack_offsetof() and BPF_PPC_TC */
677 EMIT(PPC_RAW_LL(_R4, _R1, r4_off));
678 }
679 }
680
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists