Re: [PATCH] x86: make config X86_FEATURE_NAMES visible with EXPERT

From: Lukas Bulwahn
Date: Wed May 10 2023 - 03:51:35 EST


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