Messages in this thread | | | Date | Wed, 13 May 2020 22:46:51 -0400 | From | Joel Fernandes <> | Subject | Re: [patch V4 part 3 11/29] rcu: Provide rcu_irq_exit_preempt() |
| |
On Wed, May 13, 2020 at 10:41:16PM -0400, Joel Fernandes wrote: > Hi Thomas, > > On Tue, May 05, 2020 at 03:44:05PM +0200, Thomas Gleixner wrote: > > Thank you for CC'ing me. > > > Interrupts and exceptions invoke rcu_irq_enter() on entry and need to > > invoke rcu_irq_exit() before they either return to the interrupted code or > > invoke the scheduler due to preemption. > > > > The general assumption is that RCU idle code has to have preemption > > disabled so that a return from interrupt cannot schedule. So the return > > from interrupt code invokes rcu_irq_exit() and preempt_schedule_irq(). > > > > If there is any imbalance in the rcu_irq/nmi* invocations or RCU idle code > > had preemption enabled then this goes unnoticed until the CPU goes idle or > > some other RCU check is executed. > > > > Provide rcu_irq_exit_preempt() which can be invoked from the > > interrupt/exception return code in case that preemption is enabled. It > > invokes rcu_irq_exit() and contains a few sanity checks in case that > > CONFIG_PROVE_RCU is enabled to catch such issues directly. > > Could you let me know which patch or part in the multi-part series is using it?
Ah I see its "x86/entry/common: Provide idtentry_enter/exit()" patch. I'll go read that tomorrow. Thanks!
- Joel
| |