Once the lazy preemption is supported, it makes sense to enable dynamic preemption. One can change the preemption model without changing the kernel.
Overheads of dynamic preemption seems reasonable for some of the workloads. Tested with db2 database workload, unixbench, schbench and hackbench. Except hackbench pipe rest show similar numbers as without dynamic preemption specially for preempt=none. These patches *depend* on lazy preemption patches[1] to be applied first on tip/sched/core tree. The reason for arch/asm/preempt.h is to enable arch specific preempt enablements. Also, there is plan to move preempt count to paca for 64 bit systems as idea was discussed in [2] [1] https://lore.kernel.org/all/20241116192306.88217-1-sshe...@linux.ibm.com/#t [2] https://lore.kernel.org/all/14d4584d-a087-4674-9e2b-810e96078...@linux.ibm.com/ Shrikanth Hegde (3): powerpc: copy preempt.h into arch/include/asm powerpc: support dynamic preemption powerpc: print right preemption model in die arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/preempt.h | 101 +++++++++++++++++++++++++++++ arch/powerpc/kernel/interrupt.c | 6 +- arch/powerpc/kernel/traps.c | 6 +- arch/powerpc/lib/vmx-helper.c | 2 +- 5 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 arch/powerpc/include/asm/preempt.h -- 2.39.3