[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.02.1405022100351.6261@ionos.tec.linutronix.de>
Date: Fri, 2 May 2014 21:01:50 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
cc: Steven Rostedt <rostedt@...dmis.org>,
Stanislav Meduna <stano@...una.org>,
"linux-rt-users@...r.kernel.org" <linux-rt-users@...r.kernel.org>,
Linux ARM Kernel <linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Peter Zijlstra <peterz@...radead.org>
Subject: Re: BUG: spinlock trylock failure on UP, i.MX28 3.12.15-rt25
On Fri, 2 May 2014, Sebastian Andrzej Siewior wrote:
> * Steven Rostedt | 2014-04-22 14:16:50 [-0400]:
> > /*
> > * Called by the local, per-CPU timer interrupt on SMP.
> > */
> >@@ -1467,7 +1473,7 @@ void run_local_timers(void)
> > return;
> > }
> >
> >- if (!spin_do_trylock(&base->lock)) {
> >+ if (timer_should_raise_softirq(&base->lock)) {
> > raise_softirq(TIMER_SOFTIRQ);
> > return;
> > }
>
> Okay. So Peter said that it is okay to apply this since FULL_NO_HZ users
> wouldn't complain on UP. I still wouldn't say it is broken but that is a
> different story.
> We have two users of this trylock. run_local_timers() which pops up
> quite often (and you patched here) and the other is
> get_next_timer_interrupt(). What do you suggest we do here? It is
> basically the same thing.
It's different as it CANNOT fail on UP. That's called from the idle
code and there is no way that anything holds that lock on UP when idle
runs.
Thanks,
tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists