[PATCH V2] riscv: ftrace: Fix the logic issue in DYNAMIC_FTRACE selection

Miao Chen chenmiao.ku at gmail.com
Thu Jul 10 08:56:59 PDT 2025


Hello Alex,

I found where the error is, but there's a problem here:

config PORTABLE
  bool
  default !NONPORTABLE
  select EFI
  select MMU
  select OF

select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && MMU &&
(CLANG_SUPPORTS_DYNAMIC_FTRACE || GCC_SUPPORTS_DYNAMIC_FTRACE)

Because HAVE_DYNAMIC_FTRACE depends on the MMU—of course, it's
reasonable for DYNAMIC_FTRACE to depend on the MMU—*but since
NONPORTABLE is enabled by default, this causes PORTABLE to default to
n, thereby preventing the MMU from being enabled*. So, should I change
NONPORTABLE to default to n?

Thanks,

Alex

Alexandre Ghiti <alex at ghiti.fr> 于2025年7月10日周四 22:33写道:
>
>
> On 7/10/25 14:34, Miao Chen wrote:
> > Hello Alex,
> >
> > Sure, I'll checkout it. Btw, this is my first commit, so can u tell
> > how to reproduce failed case? Using the reproduce and .config.gz gived
> > by build-bot?
>
>
> Yes exactly!
>
>
> >
> > Thanks,
> >
> > Chen Miao
> >
> > Alexandre Ghiti <alex at ghiti.fr> 于2025年7月10日周四 19:53写道:
> >> Hi ChenMiao,
> >>
> >> On 7/9/25 03:08, kernel test robot wrote:
> >>> Hi ChenMiao,
> >>>
> >>> kernel test robot noticed the following build errors:
> >>>
> >>> [auto build test ERROR on fda589c286040d9ba2d72a0eaf0a13945fc48026]
> >>>
> >>> url:    https://github.com/intel-lab-lkp/linux/commits/ChenMiao/riscv-ftrace-Fix-the-logic-issue-in-DYNAMIC_FTRACE-selection/20250706-231907
> >>> base:   fda589c286040d9ba2d72a0eaf0a13945fc48026
> >>> patch link:    https://lore.kernel.org/r/20250706151830.25091-1-chenmiao.ku%40gmail.com
> >>> patch subject: [PATCH V2] riscv: ftrace: Fix the logic issue in DYNAMIC_FTRACE selection
> >>> :::::: branch date: 2 days ago
> >>> :::::: commit date: 2 days ago
> >>> config: riscv-randconfig-r112-20250708 (attached as .config)
> >>> compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
> >>> reproduce: (attached as 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 at intel.com>
> >>> | Closes: https://lore.kernel.org/oe-kbuild-all/202507090650.YGY56SIA-lkp@intel.com/
> >>>
> >>> All errors (new ones prefixed by >>):
> >>>
> >>>>> <instantiation>:1:14: error: operand must be a symbol with %lo/%pcrel_lo/%tprel_lo modifier or an integer in the range [-2048, 2047]
> >>>      addi sp, sp, -FREGS_SIZE_ON_STACK
> >>>                   ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>>> <instantiation>:2:18: error: unexpected token
> >>>       sw t0, FREGS_EPC(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:3:17: error: unexpected token
> >>>       sw x1, FREGS_RA(sp)
> >>>                      ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:7:17: error: unexpected token
> >>>       sw x6, FREGS_T1(sp)
> >>>                      ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:9:17: error: unexpected token
> >>>       sw x7, FREGS_T2(sp)
> >>>                      ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:10:18: error: unexpected token
> >>>       sw x28, FREGS_T3(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:11:18: error: unexpected token
> >>>       sw x29, FREGS_T4(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:12:18: error: unexpected token
> >>>       sw x30, FREGS_T5(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:13:18: error: unexpected token
> >>>       sw x31, FREGS_T6(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:16:18: error: unexpected token
> >>>       sw x10, FREGS_A0(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:17:18: error: unexpected token
> >>>       sw x11, FREGS_A1(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:18:18: error: unexpected token
> >>>       sw x12, FREGS_A2(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:19:18: error: unexpected token
> >>>       sw x13, FREGS_A3(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:20:18: error: unexpected token
> >>>       sw x14, FREGS_A4(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:21:18: error: unexpected token
> >>>       sw x15, FREGS_A5(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:22:18: error: unexpected token
> >>>       sw x16, FREGS_A6(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:23:18: error: unexpected token
> >>>       sw x17, FREGS_A7(sp)
> >>>                       ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>       ^
> >>>      <instantiation>:25:15: error: operand must be a symbol with %lo/%pcrel_lo/%tprel_lo modifier or an integer in the range [-2048, 2047]
> >>>       addi a0, a0, FREGS_SIZE_ON_STACK
> >>>                    ^
> >>>      arch/riscv/kernel/mcount-dyn.S:185:2: note: while in macro instantiation
> >>>       SAVE_ABI_REGS
> >>>
> >>> Kconfig warnings: (for reference only)
> >>>      WARNING: unmet direct dependencies detected for DYNAMIC_FTRACE
> >>>      Depends on [n]: FTRACE [=y] && FUNCTION_TRACER [=y] && HAVE_DYNAMIC_FTRACE [=n]
> >>>      Selected by [y]:
> >>>      - RISCV [=y] && FUNCTION_TRACER [=y]
> >> To avoid that, we should check HAVE_DYNAMIC_FTRACE too:
> >>
> >> select DYNAMIC_FTRACE if FUNCTION_TRACER && HAVE_DYNAMIC_FTRACE
> >>
> >> That fixes the build error for me. Can you send a v3 with this change?
> >>
> >> Thanks,
> >>
> >> Alex
> >>
> >>
> > _______________________________________________
> > linux-riscv mailing list
> > linux-riscv at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-riscv



More information about the linux-riscv mailing list