Re: [PATCH v3 08/11] entry: Make CONFIG_DEBUG_ENTRY available outside x86

From: Mark Rutland
Date: Mon Mar 08 2021 - 05:14:51 EST


On Thu, Mar 04, 2021 at 11:06:01AM -0800, Andy Lutomirski wrote:
> In principle, the generic entry code is generic, and the goal is to use it
> in many architectures once it settles down more. Move CONFIG_DEBUG_ENTRY
> to the generic config so that it can be used in the generic entry code and
> not just in arch/x86.
>
> Disable it on arm64. arm64 uses some but not all of the kentry
> code, and trying to debug the resulting state machine will be painful.
> arm64 can turn it back on when it starts using the entire generic
> path.

Can we make this depend on CONFIG_GENERIC_ENTRY instead of !ARM64?
That'd be more in line with "use the generic entry code, get the generic
functionality". Note that arm64 doesn't select CONFIG_GENERIC_ENTRY
today.

I see that s390 selects CONFIG_GENERIC_ENTRY, and either way this will
enable DEBUG_ENTRY for them, so it'd ve worth checking whether this is
ok for them.

Sven, thoughts?

Thanks,
Mark.

>
> Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
> ---
> arch/x86/Kconfig.debug | 10 ----------
> lib/Kconfig.debug | 11 +++++++++++
> 2 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
> index 80b57e7f4947..a5a52133730c 100644
> --- a/arch/x86/Kconfig.debug
> +++ b/arch/x86/Kconfig.debug
> @@ -170,16 +170,6 @@ config CPA_DEBUG
> help
> Do change_page_attr() self-tests every 30 seconds.
>
> -config DEBUG_ENTRY
> - bool "Debug low-level entry code"
> - depends on DEBUG_KERNEL
> - help
> - This option enables sanity checks in x86's low-level entry code.
> - Some of these sanity checks may slow down kernel entries and
> - exits or otherwise impact performance.
> -
> - If unsure, say N.
> -
> config DEBUG_NMI_SELFTEST
> bool "NMI Selftest"
> depends on DEBUG_KERNEL && X86_LOCAL_APIC
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index 7937265ef879..76549c8afa8a 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -1411,6 +1411,17 @@ config CSD_LOCK_WAIT_DEBUG
>
> endmenu # lock debugging
>
> +config DEBUG_ENTRY
> + bool "Debug low-level entry code"
> + depends on DEBUG_KERNEL
> + depends on !ARM64
> + help
> + This option enables sanity checks in the low-level entry code.
> + Some of these sanity checks may slow down kernel entries and
> + exits or otherwise impact performance.
> +
> + If unsure, say N.
> +
> config TRACE_IRQFLAGS
> depends on TRACE_IRQFLAGS_SUPPORT
> bool
> --
> 2.29.2
>