Re: [RFC PATCH 3/3] arm64: add a new config option KTEST_RUNNABLE

From: Mark Rutland
Date: Mon Jan 07 2019 - 09:44:04 EST


Hi,

As a general thing, please Cc LAKML on patches for arm64.

On Thu, Dec 13, 2018 at 01:29:10PM +0100, Anders Roxell wrote:
> With this new config option, we can boot a allmodconfig kernel in qemu.
> Config options SERIAL_AMBA_PL011, SERIAL_AMBA_PL011_CONSOLE, UNIX needs
> to be enabled in order to get a console. Options like CPU_BIG_ENDIAN,
> CMDLINE_FORCE, CMDLINE_OVERRIDE and HVC_DCC needs to be disabled.
>
> Co-developed-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
> ---
> arch/arm64/Kconfig | 8 ++++++++
> drivers/tty/hvc/Kconfig | 1 +
> init/Kconfig | 1 +
> 3 files changed, 10 insertions(+)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 1f52362f8d99..bb17ccb7bab2 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -292,6 +292,12 @@ config ARCH_SUPPORTS_UPROBES
> config ARCH_PROC_KCORE_TEXT
> def_bool y
>
> +config KTEST_RUNNABLE
> + bool "Test build kernels that run in qemu for ktest"
> + select SERIAL_AMBA_PL011
> + select SERIAL_AMBA_PL011_CONSOLE
> + select UNIX
> +

As Mark Brown points out, the PL011 bits are platform-specific, and
don't directly relate to ktest.

The UNIX part is simply because that can be built as a module.

Is it possible to use an allyesconfig rather than an allmodconfig? That
would leave all relevant options built-in.

> diff --git a/drivers/tty/hvc/Kconfig b/drivers/tty/hvc/Kconfig
> index 4293c172e120..44e23c2388bd 100644
> --- a/drivers/tty/hvc/Kconfig
> +++ b/drivers/tty/hvc/Kconfig
> @@ -82,6 +82,7 @@ config HVC_UDBG
> config HVC_DCC
> bool "ARM JTAG DCC console"
> depends on ARM || ARM64
> + depends on !KTEST_RUNNABLE
> select HVC_DRIVER
> help
> This console uses the JTAG DCC on ARM to create a console under the HVC

... this is just a hack around the DCC driver being dodgy.

We should fix that to only probe if explicitly requested at run-time via
a command line argument.

Thanks,
Mark.