Re: [PATCH v2] sched/preempt: Tell about PREEMPT_DYNAMIC on kernel headers

From: Peter Zijlstra
Date: Thu Mar 10 2022 - 03:54:07 EST


On Thu, Feb 17, 2022 at 12:12:40PM +0100, Frederic Weisbecker wrote:

> From: Frederic Weisbecker <frederic@xxxxxxxxxx>
> Date: Wed, 2 Feb 2022 15:59:54 +0100
> Subject: [PATCH] sched/preempt: Tell about PREEMPT_DYNAMIC on kernel headers
>
> Displaying "PREEMPT" on kernel headers when CONFIG_PREEMPT_DYNAMIC=y
> can be misleading for anybody involved in remote debugging because it
> is then not guaranteed that there is an actual preemption behaviour. It
> depends on default Kconfig or boot defined choices.
>
> Therefore, tell about PREEMPT_DYNAMIC on static kernel headers and leave
> the search for the actual preemption behaviour to browsing dmesg.
>
> Reviewed-by: Valentin Schneider <valentin.schneider@xxxxxxx>
> Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>

Hurmph.. if you all think this matters I suppose.

Let me go queue it.

> ---
> init/Makefile | 3 ++-
> scripts/mkcompile_h | 17 ++++++++++++-----
> 2 files changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/init/Makefile b/init/Makefile
> index 06326e304384..d82623d7fc8e 100644
> --- a/init/Makefile
> +++ b/init/Makefile
> @@ -31,7 +31,8 @@ quiet_cmd_compile.h = CHK $@
> cmd_compile.h = \
> $(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
> "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT_BUILD)" \
> - "$(CONFIG_PREEMPT_RT)" "$(CONFIG_CC_VERSION_TEXT)" "$(LD)"
> + "$(CONFIG_PREEMPT_DYNAMIC)" "$(CONFIG_PREEMPT_RT)" \
> + "$(CONFIG_CC_VERSION_TEXT)" "$(LD)"
>
> include/generated/compile.h: FORCE
> $(call cmd,compile.h)
> diff --git a/scripts/mkcompile_h b/scripts/mkcompile_h
> index 6a2a04d92f42..ca40a5258c87 100755
> --- a/scripts/mkcompile_h
> +++ b/scripts/mkcompile_h
> @@ -5,9 +5,10 @@ TARGET=$1
> ARCH=$2
> SMP=$3
> PREEMPT=$4
> -PREEMPT_RT=$5
> -CC_VERSION="$6"
> -LD=$7
> +PREEMPT_DYNAMIC=$5
> +PREEMPT_RT=$6
> +CC_VERSION="$7"
> +LD=$8
>
> # Do not expand names
> set -f
> @@ -41,8 +42,14 @@ fi
> UTS_VERSION="#$VERSION"
> CONFIG_FLAGS=""
> if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
> -if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
> -if [ -n "$PREEMPT_RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT_RT"; fi
> +
> +if [ -n "$PREEMPT_RT" ] ; then
> + CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT_RT"
> +elif [ -n "$PREEMPT_DYNAMIC" ] ; then
> + CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT_DYNAMIC"
> +elif [ -n "$PREEMPT" ] ; then
> + CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"
> +fi
>
> # Truncate to maximum length
> UTS_LEN=64
> --
> 2.25.1
>