Re: [PATCH 0/8] riscv: Support compiling the kernel with extensions

From: Conor Dooley
Date: Tue May 07 2024 - 03:25:20 EST


Hey Charlie,

On 7 May 2024 02:40:41 IST, Charlie Jenkins <charlie@xxxxxxxxxxxx> wrote:
>The kernel currently has the restriction that it can only be compiled
>with the extensions that are hardcoded in arch/risc/Makefile.
>
>Any extension that is not listed in the Makefile can still be used by
>explicitly writing the assembly and using alternative patching.
>
>This series introduces Kconfig options that allow the kernel to be
>compiled with additional extensions.

One thing I don't see in the commit messages or the cover letter is what your actual motivation is
for making these changes.
Are you effectively looking to evaluate the alternatives at build time, or are you looking to
let the compiler use the extension where it sees
fit? Or perhaps both?

Thanks,
Conor.

>
>Signed-off-by: Charlie Jenkins <charlie@xxxxxxxxxxxx>
>---
>Charlie Jenkins (8):
> riscv: Add PLATFORM_MAY_SUPPORT_RISCV_ISA_C Kconfig option
> riscv: Add PLATFORM_MAY_SUPPORT_RISCV_ISA_V Kconfig option
> riscv: Add PLATFORM_SUPPORTS_RISCV_ISA_SVNAPOT Kconfig option
> riscv: Add PLATFORM_MAY_SUPPORT_RISCV_ISA_SVPBMT Kconfig option
> riscv: Add PLATFORM_SUPPORTS_RISCV_ISA_ZBB Kconfig option
> riscv: Add PLATFORM_SUPPORTS_RISCV_ISA_ZBA Kconfig option
> riscv: Add PLATFORM_SUPPORTS_RISCV_ISA_ZBC Kconfig option
> riscv: Add PLATFORM_SUPPORTS_RISCV_ISA_ZBS Kconfig option
>
> arch/riscv/Kconfig | 135 +-----------
> arch/riscv/Kconfig.isa | 393 ++++++++++++++++++++++++++++++++++
> arch/riscv/Makefile | 15 +-
> arch/riscv/crypto/Kconfig | 14 +-
> arch/riscv/include/asm/arch_hweight.h | 33 +--
> arch/riscv/include/asm/checksum.h | 18 +-
> arch/riscv/include/asm/pgtable.h | 3 +-
> arch/riscv/include/asm/simd.h | 3 +
> arch/riscv/include/asm/vector.h | 3 +-
> arch/riscv/kernel/cpufeature.c | 3 +-
> arch/riscv/kernel/head.S | 8 +-
> arch/riscv/kernel/probes/uprobes.c | 2 +-
> arch/riscv/kernel/process.c | 14 +-
> arch/riscv/kernel/ptrace.c | 6 +
> arch/riscv/lib/csum.c | 48 ++---
> arch/riscv/lib/riscv_v_helpers.c | 1 -
> arch/riscv/lib/strcmp.S | 4 +-
> arch/riscv/lib/strlen.S | 4 +-
> arch/riscv/lib/strncmp.S | 4 +-
> arch/riscv/lib/uaccess_vector.S | 2 +
> arch/riscv/lib/xor.S | 2 +
> arch/riscv/net/bpf_jit.h | 8 +-
> 22 files changed, 511 insertions(+), 212 deletions(-)
>---
>base-commit: 2f47357557b7aa98d9d9002688aae480864ca3f6
>change-id: 20240429-compile_kernel_with_extensions-92dd2403d325