Messages in this thread | | | Date | Tue, 24 Mar 2015 19:10:34 +0100 | From | Sebastian Andrzej Siewior <> | Subject | Re: [PATCH RT 2/4] Revert "timers: do not raise softirq unconditionally" |
| |
* Steven Rostedt | 2015-03-19 12:26:11 [-0400]:
>On Thu, 19 Mar 2015 09:17:09 +0100 >Mike Galbraith <umgwanakikbuti@gmail.com> wrote: > > >> (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
| |