Messages in this thread | | | From | Valentin Schneider <> | Subject | Re: [PATCH v2 2/6] genirq: Allow an interrupt to be marked as 'raw' | Date | Sat, 05 Dec 2020 19:24:15 +0000 |
| |
On 03/12/20 15:52, Valentin Schneider wrote: > On 03/12/20 13:03, Peter Zijlstra wrote: [...] >> The scheduler IPI really doesn't need RCU either ;-) [...] > But as with any other interrupt, we could then go through: > > preempt_schedule_irq() ~> pick_next_task_fair() -> newidle_balance() > > which does enter a read-side section, so RCU would need to be > watching. Looking at kernel/entry/common.c:irqentry_exit_cond_resched(), it > seems we do check for this via rcu_irq_exit_check_preempt(). > > I however cannot grok why irqentry_exit() *doesn't* call into > preempt_schedule_irq() if RCU wasn't watching on IRQ entry
RCU wasn't watching on IRQ entry: -> we should be on the idle task -> no unvoluntary preemption for the idle task, scheduling always happens at the tail of the idle loop -> ignore what I've been saying, current patch is fine
| |