On 9/4/19 10:19 AM, Peter Zijlstra wrote:


Adding Paul since RCU faces similar situations, i.e. raising softirq risks
scheduler deadlock in rcu_read_unlock_special() -- but RCU's solution is to
avoid raising the softirq and instead use irq_work.

Which is right.


Thanks Joel and Peter for suggesting the irq_work facility.

I was ignorant of the existence of this facility.

It looks like it is the Holy Grail of deferred work, for this particular type of problem :)

It looks like it will be possible to both avoid deadlock and also avoid the ugly additions to the sched and idle code. In addition, the rest of the code will become a lot simpler.

best regards,

Viktor

Reply via email to