Re: [PATCH 1/2] x86/entry: Use should_resched() in idtentry_exit_cond_resched()

From: Sebastian Andrzej Siewior
Date: Tue Jun 30 2020 - 08:01:05 EST


On 2020-06-30 13:10:12 [+0200], Peter Zijlstra wrote:
> > --- a/arch/x86/entry/common.c
> > +++ b/arch/x86/entry/common.c
> > @@ -612,13 +612,12 @@ bool noinstr idtentry_enter_cond_rcu(struct pt_regs *regs)
> >
> > static void idtentry_exit_cond_resched(struct pt_regs *regs, bool may_sched)
> > {
> > - if (may_sched && !preempt_count()) {
> > + if (may_sched && should_resched(0)) {
> > /* Sanity check RCU and thread stack */
> > rcu_irq_exit_check_preempt();
> > if (IS_ENABLED(CONFIG_DEBUG_ENTRY))
> > WARN_ON_ONCE(!on_thread_stack());
>
> This was done on purpose, your change avoids hitting this WARN.
>
> The thing is, if we could preempt (but not nessecarily have to) we want
> to validate we're on the thread stack.

Okay then.

Sebastian