On (19/11/20 17:13), Petr Mladek wrote:
[..]
It is the first time that I hear about problem caused by the
irq_work(). But we deal with deadlocks caused by wake_up() for years.
It would be like replacing a lightly dripping tap with a heavily
dripping one.
I see reports with WARN() from scheduler code from time to time.
I would get reports about silent death instead.
Just curious, how many of those WARN() come under rq lock or pi_lock?
// this is real question
RT guys are going to make printk() fully lockless. It would be
really great achievement. irq_work is lockless. While wake_up()
is not.
There must be a better way how to break the infinite loop caused
by the irq_work.
A lockless wake_up() would do :)
-ss