Skip to content

RFC preempt: Tune preemption flavour on boot v4

Frederic Weisbecker lkml oe-kbuild-all 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest0 of 7 patches 2 repliesIn review

Patches in v1 No applies recorded yet

None of the 7 patches the cover letter announces are in this archive.

Reviews trailers per patch

PatchPeter Zijlstra (Intel)
SeriesOriginally-by

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

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

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(-)