Hi folks, Thanks to suggestions from Mike, Frederic and Marco I ended up with something that looks somewhat sane and with a minimal amount of crud. Patches ======= o Patch 1 is the meat of the topic and could be picked on its own if the rest is too icky. o Patch 2 introduces helpers for the dynamic preempt state o Patches 3-5 make use of said accessors where relevant. Testing ======= Briefly tested the dynamic part on an x86 kernel + QEMU. x86_64_defconfig gets me: Dynamic Preempt: voluntary and appending preempt=full gets me: Dynamic Preempt: full Revisions ========= v1: http://lore.kernel.org/r/20211105104035.3112162-1-valentin.schneider@xxxxxxx v1.5: http://lore.kernel.org/r/20211109151057.3489223-1-valentin.schneider@xxxxxxx This v2 is completely different from v1, so I felt like I could get away without writing a version changelog... Cheers, Valentin Valentin Schneider (5): preempt: Restore preemption model selection configs preempt/dynamic: Introduce preempt mode accessors powerpc: Use preemption model accessors kscan: Use preemption model accessors ftrace: Use preemption model accessors for trace header printout arch/powerpc/kernel/interrupt.c | 2 +- arch/powerpc/kernel/traps.c | 2 +- include/linux/kernel.h | 2 +- include/linux/sched.h | 16 +++++++++++++ include/linux/vermagic.h | 2 +- init/Makefile | 2 +- kernel/Kconfig.preempt | 42 ++++++++++++++++----------------- kernel/kcsan/kcsan_test.c | 4 ++-- kernel/sched/core.c | 17 ++++++++++--- kernel/trace/trace.c | 14 ++++------- 10 files changed, 62 insertions(+), 41 deletions(-) -- 2.25.1