On Wed, May 10, 2023 at 3:07 AM H. Peter Anvin <hpa@xxxxxxxxx> wrote: > > On May 9, 2023 1:40:07 AM PDT, Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx> wrote: > >Commit 6a108a14fa35 ("kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT") > >introduces CONFIG_EXPERT to carry the previous intent of CONFIG_EMBEDDED > >and just gives that intent a much better name. That has been clearly a good > >and long overdue renaming, and it is clearly an improvement to the kernel > >build configuration that has shown to help managing the kernel build > >configuration in the last decade. > > > >However, rather than bravely and radically just deleting CONFIG_EMBEDDED, > >this commit gives CONFIG_EMBEDDED a new intended semantics, but keeps it > >open for future contributors to implement that intended semantics: > > > > A new CONFIG_EMBEDDED option is added that automatically selects > > CONFIG_EXPERT when enabled and can be used in the future to isolate > > options that should only be considered for embedded systems (RISC > > architectures, SLOB, etc). > > > >Since then, this CONFIG_EMBEDDED implicitly had two purposes: > > > > - It can make even more options visible beyond what CONFIG_EXPERT makes > > visible. In other words, it may introduce another level of enabling the > > visibility of configuration options: always visible, visible with > > CONFIG_EXPERT and visible with CONFIG_EMBEDDED. > > > > - Set certain default values of some configurations differently, > > following the assumption that configuring a kernel build for an > > embedded system generally starts with a different set of default values > > compared to kernel builds for all other kind of systems. > > > >Considering the first purpose, at the point in time where CONFIG_EMBEDDED > >was renamed to CONFIG_EXPERT, CONFIG_EXPERT already made 130 more options > >become visible throughout all different menus for the kernel configuration. > >Over the last decade, this has gradually increased, so that currently, with > >CONFIG_EXPERT, roughly 170 more options become visible throughout all > >different menus for the kernel configuration. In comparison, currently with > >CONFIG_EMBEDDED enabled, just seven more options are visible, one in x86, > >one in arm, and five for the ChipIdea Highspeed Dual Role Controller. > > > >As the numbers suggest, these two levels of enabling the visibility of even > >more configuration options---beyond what CONFIG_EXPERT enables---never > >evolved to a good solution in the last decade. In other words, this > >additional level of visibility of configuration option with CONFIG_EMBEDDED > >compared to CONFIG_EXPERT has since its introduction never become really > >valuable. It requires quite some investigation to actually understand what > >is additionally visible and it does not differ significantly in complexity > >compared to just enabling CONFIG_EXPERT. This CONFIG_EMBEDDED---or any > >other config to show more detailed options beyond CONFIG_EXPERT---is > >unlikely to be valuable unless somebody puts significant effort in > >identifying how such visibility options can be properly split and creating > >clear criteria, when some config option is visible with CONFIG_EXPERT and > >when some config option is visible only with some further option enabled > >beyond CONFIG_EXPERT, such as CONFIG_EMBEDDED attempted to do. For now, it > >is much more reasonable to simply make those additional seven options that > >are visible with CONFIG_EMBEDDED visible with CONFIG_EXPERT, and then > >remove CONFIG_EMBEDDED. If anyone spends significant effort in structuring > >the visibility of config options, they may re-introduce suitable new > >config options simply as they see fit. > > > >Make the config X86_FEATURE_NAMES visible when CONFIG_EXPERT is enabled. > > > >Signed-off-by: Lukas Bulwahn <lukas.bulwahn@xxxxxxxxx> > >Reviewed-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > >Acked-by: Arnd Bergmann <arnd@xxxxxxxx> > >--- > > arch/x86/Kconfig | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > >diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > >index ce460d6b4e25..595f6696281c 100644 > >--- a/arch/x86/Kconfig > >+++ b/arch/x86/Kconfig > >@@ -442,7 +442,7 @@ config SMP > > If you don't know what to do here, say N. > > > > config X86_FEATURE_NAMES > >- bool "Processor feature human-readable names" if EMBEDDED > >+ bool "Processor feature human-readable names" if EXPERT > > default y > > help > > This option compiles in a table of x86 feature bits and corresponding > > You know it used to be named that, and it was changed exactly because it was a terrible name, right? Yes, I do (commit 6a108a14fa35 ("kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT")); and keeping CONFIG_EMBEDDED after that renaming was not the best idea in retrospect. Lukas