On 2022-03-07 07:09:13 [-0800], Paul E. McKenney wrote: > > Correct. Possible due to the removal of wait_queue_head (plus there is > > nothing else that would stand in the way otherwise). > > Very good! > > If the overhead becomes a problem in mainline, presumably we can do > a compile-time switch based on CONFIG_PREEMPT_RT or similar. the rcuwake is a lot cheaper than waitqueue in terms of code or data involved, locks, …. The _HARD flag is a nop on !RT. So it should be a win-win situation here. > > > If so, I am wondering if there are other > > > irq_work instances that need to move to _HARD. > > > > We already have: > > kernel/rcu/tree.c: rdp->rcu_iw = IRQ_WORK_INIT_HARD(rcu_iw_handler); > > Because you prompted me to change it from IRQ_WORK_INIT() some time > back? ;-) Right. We have printk() for instance using the !HARD irq-work so this mostly a case-by-case decision usually avoiding HARD. > Thanx, Paul Sebastian