Hi,

On 7/11/25 10:24, Miao Chen wrote:
Hi,

I rechecked the .config file. I configured it using

make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu-
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__ -fmax-errors=unlimited
-fmax-warnings=unlimited' O=build_dir olddefconfig,

and obtained the following configuration. If NONPORTABLE is disabled,
the MMU will be enabled. I did not find any other settings that would
affect the enabling of NONPORTABLE—it is set to 'y' by default.


NONPORTABLE being set does not prevent MMU to be enabled. I see that in your config MMU is disabled and then HAVE_DYNAMIC_FTRACE is disabled, I don't see anything wrong with this configuration so there is no need to try to enable MMU.

This configuration shows that we need to check that HAVE_DYNAMIC_FTRACE is set to enable DYNAMIC_FTRACE, otherwise we encounter the build errors reported by kernel test robot.

Can you send a v3 with this change?

Also, can you change the patch title and patch log to something like this:

    riscv: Stop supporting static ftrace

    Now that DYNAMIC_FTRACE was introduced, there is no need to support
    static ftrace as it is way less performant. This simplifies the code and
    prevents build failures as reported by kernel test robot when
    !DYNAMIC_FTRACE.

Thanks,

Alex




--------- CONFIG ---------------------

config NONPORTABLE
bool "Allow configurations that result in non-portable kernels"

Symbol: HAVE_DYNAMIC_FTRACE [=n]
Type  : bool
Defined at kernel/trace/Kconfig:42
Selected by [n]:
     - RISCV [=y] && !XIP_KERNEL [=n] && MMU [=n] &&
(CLANG_SUPPORTS_DYNAMIC_FTRACE [=n] || GCC_SUPPORTS_DYNAMIC_FTRACE
[=y])

Symbol: MMU [=n]
Type  : bool
Defined at arch/riscv/Kconfig:298
Prompt: MMU-based Paged Memory Management Support
Location:
   (1) -> MMU-based Paged Memory Management Support (MMU [=n])
   Selected by [n]:
       - PORTABLE [=n]

Symbol: PORTABLE [=n]
     Type  : bool
     Defined at arch/riscv/Kconfig:1344
     Selects: EFI [=n] && MMU [=n] && OF [=y]

Symbol: NONPORTABLE [=y]
   │ Type  : bool
   │ Defined at arch/riscv/Kconfig:389
   │   Prompt: Allow configurations that result in non-portable kernels
   │   Location:
   │     -> Platform type
   │ (1)   -> Allow configurations that result in non-portable kernels
(NONPORTABLE [=y])

Thanks,

Chen Miao

Alexandre Ghiti <a...@ghiti.fr> 于2025年7月11日周五 15:55写道:
Hi,

On 7/10/25 17:56, Miao Chen wrote:
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?

NONPORTABLE is not enabled by default and PORTABLE=n does not prevent
MMU from being enabled.

IIUC, it seems like you don't have HAVE_DYNAMIC_FTRACE enabled but
that's probably because of your toolchain, not !MMU, can you check that
in your .config?

Thanks,

Alex


Thanks,

Alex

Alexandre Ghiti <a...@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 <a...@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 <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202507090650.ygy56sia-...@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-ri...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-ri...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
_______________________________________________
linux-riscv mailing list
linux-ri...@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

Reply via email to