Re: [PATCH v2 0/6] sched: dynamic: Simplify PREEMPT_DYNAMIC

Jinjie Ruan <[email protected]>
Newsgroups org.kernel.vger.linux-kernel
Message-ID <[email protected]>

在 2026/8/4 3:17, Mark Rutland 写道:
> All architectures which currently suppoort PREEMPT_DYNAMIC select
> ARCH_HAS_PREEMPT_LAZY.  On architectures which select
> ARCH_HAS_PREEMPT_LAZY, it has not been possible to select the NONE and
> VOLUNTARY preemption models since v7.0 due to commit:
> 
>   7dadeaa6e851 ("sched: Further restrict the preemption modes")
> 
> Hence in practice PREEMPT_DYNAMIC no longer supports the NONE or
> VOLUNTARY preemption models.
> 
> This series makes the de-facto situation official by making
> PREEMPT_DYNAMIC depend on ARCH_HAS_PREEMPT_LAZY, and removing redundant
> code.
> 
> Since v1, I've had to rebase atop v7.2-rc4 to avoid a conflict with
> commit:
> 
>   a2c02aa0c6ca ("powerpc: Remove dead non-preemption code")
> 
> Given this is now late in the cycle, and given the tip:sched/core branch
> is based on v7.2-rc1, I suspect tip folk might not want to queue this
> now. Please let me know what you'd prefer; I'm happy to rebase and
> resend after v7.3-rc1.
> 
> Since v1:
> * Rebase to v7.2-rc4
> * Apply Revied-by tags.
> * Fix typos in commit messages.
> * Add patch to cleanup accessors (per Shrikanth's comment)
> 
> Mark.
> 
> Mark Rutland (6):
>   sched: dynamic: Make PREEMPT_DYNAMIC depend on ARCH_HAS_PREEMPT_LAZY
>   sched: dynamic: Simplify {cond,might}_resched()


Hi Mark,

We also need to update the Doc.

--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -5410,8 +5410,6 @@ Kernel parameters

        preempt=        [KNL]
                        Select preemption mode if you have
CONFIG_PREEMPT_DYNAMIC
-                       none - Limited to cond_resched() calls
-                       voluntary - Limited to cond_resched() and
might_sleep() calls
                        full - Any section that isn't explicitly preempt
disabled
                               can be preempted anytime.  Tasks will
also yield
                               contended spinlocks (if the critical
section isn't

Best regards,
Jinjie

>   sched: dynamic: Simplify preempt_schedule{,_notrace}()
>   sched: dynamic: Simplify irqentry_exit_cond_resched()
>   sched: dynamic: Remove HAVE_PREEMPT_DYNAMIC_{CALL,KEY}
>   sched: dynamic: Simplify preempt model accessors
> 
>  arch/Kconfig                     |  38 -------
>  arch/arm64/Kconfig               |   1 -
>  arch/arm64/include/asm/preempt.h |  10 --
>  arch/loongarch/Kconfig           |   1 -
>  arch/powerpc/Kconfig             |   1 -
>  arch/riscv/Kconfig               |   1 -
>  arch/s390/Kconfig                |   1 -
>  arch/s390/include/asm/preempt.h  |  11 --
>  arch/x86/Kconfig                 |   1 -
>  arch/x86/include/asm/preempt.h   |  28 -----
>  include/asm-generic/preempt.h    |  10 --
>  include/linux/irq-entry-common.h |  17 +--
>  include/linux/kernel.h           |  20 ----
>  include/linux/preempt.h          |  20 ++--
>  include/linux/sched.h            |  31 +-----
>  kernel/Kconfig.preempt           |   9 +-
>  kernel/entry/common.c            |  17 +--
>  kernel/sched/core.c              | 180 +------------------------------
>  18 files changed, 23 insertions(+), 374 deletions(-)
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.