Messages in this thread | | | Date | Mon, 26 Feb 2024 07:01:23 -0800 | Subject | Re: [PATCH] riscv: deprecate CONFIG_MMU=n | From | Damien Le Moal <> |
| |
On 2024/02/26 6:59, Clément Léger wrote: > > > On 26/02/2024 15:57, Damien Le Moal wrote: >> On 2024/02/26 6:06, Clément Léger wrote: >>> Deprecation of NOMMU support for riscv was discussed during LPC 2023 >>> [1]. Reasons for this involves lack of users as well as maintenance >>> efforts to support this mode. psABI FDPIC specification also never >>> made it upstream and last public messages of this development seems to >>> date back from 2020 [2]. Plan the deprecation to be done in 2 years from >>> now. Mark the Kconfig option as deprecated by adding a new dummy option >>> which explicitly displays the deprecation in case of CONFIG_MMU=n. This option >>> is selected indirectly by CONFIG_RISCV_M_MODE since an option can not >>> select another one directly with a "select" in case of such CONFIG=n. >>> Additionally, display a pr_err() message at boot time in case of NOMMU >>> build to warn about upcoming deprecation. >>> >>> Link: https://lpc.events/event/17/contributions/1478/ [1] >>> Link: https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/ZjYUJswknQ4/m/WYRRylTwAAAJ [2] >>> Signed-off-by: Clément Léger <cleger@rivosinc.com> >>> >>> --- >>> arch/riscv/Kconfig | 8 ++++++++ >>> arch/riscv/kernel/setup.c | 4 ++++ >>> 2 files changed, 12 insertions(+) >>> >>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >>> index bffbd869a068..8da58c102d3f 100644 >>> --- a/arch/riscv/Kconfig >>> +++ b/arch/riscv/Kconfig >>> @@ -221,6 +221,7 @@ config ARCH_MMAP_RND_COMPAT_BITS_MAX >>> # set if we run in machine mode, cleared if we run in supervisor mode >>> config RISCV_M_MODE >>> bool >>> + select NOMMU >>> default !MMU >>> >>> # set if we are running in S-mode and can use SBI calls >>> @@ -236,6 +237,13 @@ config MMU >>> Select if you want MMU-based virtualised addressing space >>> support by paged memory management. If unsure, say 'Y'. >>> >>> +config NOMMU >>> + depends on !MMU >>> + bool "NOMMU kernel (DEPRECATED)" >>> + help >>> + NOMMU kernel is deprecated and is scheduled for removal by >>> + the beginning of 2027. >> >> 2 years from now is 2026... > > Guess I'm a bit tired -_-'
Off-by-1 bug. It happens :)
> >> >>> + >>> config PAGE_OFFSET >>> hex >>> default 0xC0000000 if 32BIT && MMU >>> diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c >>> index 4f73c0ae44b2..8799816ef0a6 100644 >>> --- a/arch/riscv/kernel/setup.c >>> +++ b/arch/riscv/kernel/setup.c >>> @@ -295,6 +295,10 @@ void __init setup_arch(char **cmdline_p) >>> riscv_set_dma_cache_alignment(); >>> >>> riscv_user_isa_enable(); >>> + >>> +#if !defined(CONFIG_MMU) >> >> if (!IS_ENABLED(CONFIG_MMU)) >> >> would be more elegant here... > > Sure. > >> >>> + pr_err("RISC-V NOMMU support is deprecated and scheduled for removal by the beginning of 2027\n"); >> >> Why pr_err() ? pr_warn() seems more appropriate. > > Agreed. > > Thanks, > > Clément > >> >>> +#endif >>> } >>> >>> bool arch_cpu_is_hotpluggable(int cpu) >>
-- Damien Le Moal Western Digital Research
| |