Thread (22 messages) 22 messages, 5 authors, 2015-08-11

Re: [PATCH RT 2/4] Revert "timers: do not raise softirq unconditionally"

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2015-03-24 18:10:47
Also in: lkml

* Steven Rostedt | 2015-03-19 12:26:11 [-0400]:
On Thu, 19 Mar 2015 09:17:09 +0100
Mike Galbraith [off-list ref] wrote:

quoted
(aw crap, let's go shopping)... so why is the one in timer.c ok?
It's not. Sebastian, you said there were no other cases of rt_mutexes
being taken in hard irq context. Looks like timer.c has one.
If you refer to switch_timer_base() then this one is not taken in
hard-irq context. The callchain is:

lock_timer_base() (with spin_lock_irqsave(&base->lock, *flags) which
                   makes it a sleeping lock or lockdep would scream)
  -> switch_timer_base()
     -> spin_trylock() (not in hardirq conteyt)
So perhaps the real fix is to get that special case of ownership in
hard interrupt context?
I'm really not sure we want to keep doing this.
-- Steve
Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help