Messages in this thread | | | From | Frederic Weisbecker <> | Subject | [RFC PATCH 0/7] preempt: Tune preemption flavour on boot v4 | Date | Mon, 18 Jan 2021 15:12:15 +0100 |
| |
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
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(-)
| |