Re: [RFC PATCH 0/7] preempt: Tune preemption flavour on boot v4

From: Paul E. McKenney
Date: Fri Jan 22 2021 - 10:09:52 EST


On Mon, Jan 18, 2021 at 03:12:15PM +0100, Frederic Weisbecker wrote:
> Hi,
>
> Here is a new version of the feature that can select the preempt flavour
> on boot time. Note that it doesn't entirely mimic the actual real
> config-based preemption flavours, because at least preempt-RCU
> implementation is there in any case.
>
> Also there is still some work to do against subsystems that may play
> their own games with CONFIG_PREEMPT.
>
> In this version:
>
> * Restore the initial simple __static_call_return0() implementation.
>
> * Uninline __static_call_return0 on all flavours since its address is
> always needed on DEFINE_STATIC_CALL()
>
> * Introduce DEFINE_STATIC_CALL_RET0()
>
> git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
> preempt/dynamic-v4
>
> HEAD: b5f3b1da9df4197d0b0ffe0f55f0f6a8c838d75f

I gave these a quick test and got the following:

Warning: Kernel ABI header at 'tools/include/linux/static_call_types.h' differs from latest version at 'include/linux/static_call_types.h'.

Other than that, looks good.

Thanx, Paul

> Thanks,
> Frederic
> ---
>
> Peter Zijlstra (Intel) (4):
> preempt/dynamic: Provide cond_resched() and might_resched() static calls
> preempt/dynamic: Provide preempt_schedule[_notrace]() static calls
> preempt/dynamic: Provide irqentry_exit_cond_resched() static call
> preempt/dynamic: Support dynamic preempt with preempt= boot option
>
> Peter Zijlstra (2):
> static_call/x86: Add __static_call_return0()
> static_call: Pull some static_call declarations to the type headers
>
> Frederic Weisbecker (1):
> static_call: Provide DEFINE_STATIC_CALL_RET0()
>
> Michal Hocko (1):
> preempt: Introduce CONFIG_PREEMPT_DYNAMIC
>
>
> Documentation/admin-guide/kernel-parameters.txt | 7 ++
> arch/Kconfig | 9 +++
> arch/x86/Kconfig | 1 +
> arch/x86/include/asm/preempt.h | 34 ++++++---
> arch/x86/kernel/static_call.c | 17 ++++-
> include/linux/entry-common.h | 4 ++
> include/linux/kernel.h | 23 ++++--
> include/linux/sched.h | 27 ++++++-
> include/linux/static_call.h | 43 ++++--------
> include/linux/static_call_types.h | 29 ++++++++
> kernel/Kconfig.preempt | 19 +++++
> kernel/entry/common.c | 10 ++-
> kernel/sched/core.c | 93 ++++++++++++++++++++++++-
> kernel/static_call.c | 5 ++
> 14 files changed, 271 insertions(+), 50 deletions(-)