On 1/31/25 11:39, Christophe Leroy wrote:
Le 30/01/2025 à 21:26, Sebastian Andrzej Siewior a écrit :
On 2025-01-30 22:27:07 [+0530], Shrikanth Hegde wrote:
| #DEFINE need_irq_preemption() \
|
(static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
|
| if (need_irq_p
Le 30/01/2025 à 21:26, Sebastian Andrzej Siewior a écrit :
On 2025-01-30 22:27:07 [+0530], Shrikanth Hegde wrote:
| #DEFINE need_irq_preemption() \
| (static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
|
| if (need_irq_preemption()) {
be a bit smaller/ quicker? Th
On 2025-01-30 22:27:07 [+0530], Shrikanth Hegde wrote:
> > | #DEFINE need_irq_preemption() \
> > | (static_branch_unlikely(&sk_dynamic_irqentry_exit_cond_resched))
> > |
> > | if (need_irq_preemption()) {
> >
> > be a bit smaller/ quicker? This could be a fast path ;)
>
> I am okay wit
On 1/30/25 20:24, Sebastian Andrzej Siewior wrote:
On 2025-01-06 10:49:19 [+0530], Shrikanth Hegde wrote:
--- a/arch/powerpc/kernel/interrupt.c
Thanks for taking a look.
+
#ifdef CONFIG_PPC_BOOK3S_64
DEFINE_STATIC_KEY_FALSE(interrupt_exit_not_reentrant);
static inline bool exit_
Le 30/01/2025 à 15:54, Sebastian Andrzej Siewior a écrit :
On 2025-01-06 10:49:19 [+0530], Shrikanth Hegde wrote:
--- a/arch/powerpc/kernel/interrupt.c
+++ b/arch/powerpc/kernel/interrupt.c
@@ -25,6 +25,10 @@
unsigned long global_dbcr0[NR_CPUS];
#endif
+#if defined(CONFIG_PREEMPT_DYNAM
On 2025-01-30 16:03:09 [+0100], Christophe Leroy wrote:
> Le 30/01/2025 à 15:54, Sebastian Andrzej Siewior a écrit :
> > On 2025-01-06 10:49:19 [+0530], Shrikanth Hegde wrote:
> > > --- a/arch/powerpc/kernel/interrupt.c
> > > +++ b/arch/powerpc/kernel/interrupt.c
> > > @@ -25,6 +25,10 @@
> > > un
On 2025-01-06 10:49:19 [+0530], Shrikanth Hegde wrote:
> --- a/arch/powerpc/kernel/interrupt.c
> +++ b/arch/powerpc/kernel/interrupt.c
> @@ -25,6 +25,10 @@
> unsigned long global_dbcr0[NR_CPUS];
> #endif
>
> +#if defined(CONFIG_PREEMPT_DYNAMIC) &&
> defined(CONFIG_HAVE_PREEMPT_DYNAMIC_KEY)
> +
Once the lazy preemption is supported, it would be desirable to change
the preemption models at runtime. So add support for dynamic preemption
using DYNAMIC_KEY.
In irq-exit to kernel path, use preempt_model_preemptible for decision.
Other way would be using static key based decision. Keeping it
s