* [PATCH RT 1/3] timer: do not spin_trylock() on UP
2014-07-02 19:52 [PATCH RT 0/3] Linux 3.10.44-rt46-rc1 Steven Rostedt
@ 2014-07-02 19:52 ` Steven Rostedt
2014-07-02 19:52 ` [PATCH RT 2/3] Fix latency histogram after "hrtimer: Set expiry time before switch_hrtimer_base()" Steven Rostedt
2014-07-02 19:52 ` [PATCH RT 3/3] Linux 3.10.44-rt46-rc1 Steven Rostedt
2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2014-07-02 19:52 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
John Kacur, Paul Gortmaker, stable-rt
[-- Attachment #1: 0001-timer-do-not-spin_trylock-on-UP.patch --]
[-- Type: text/plain, Size: 1295 bytes --]
3.10.44-rt46-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
This will void a warning comming from the spin-lock debugging code. The
lock avoiding idea is from Steven Rostedt.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/timer.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/kernel/timer.c b/kernel/timer.c
index 26cca8b924e7..40cfa14131ca 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -1461,6 +1461,19 @@ void run_local_timers(void)
* the timer softirq.
*/
#ifdef CONFIG_PREEMPT_RT_FULL
+
+#ifndef CONFIG_SMP
+ /*
+ * The spin_do_trylock() later may fail as the lock may be hold before
+ * the interrupt arrived. The spin-lock debugging code will raise a
+ * warning if the try_lock fails on UP. Since this is only an
+ * optimization for the FULL_NO_HZ case (not to run the timer softirq on
+ * an nohz_full CPU) we don't really care and shedule the softirq.
+ */
+ raise_softirq(TIMER_SOFTIRQ);
+ return;
+#endif
+
/* On RT, irq work runs from softirq */
if (irq_work_needs_cpu()) {
raise_softirq(TIMER_SOFTIRQ);
--
2.0.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH RT 2/3] Fix latency histogram after "hrtimer: Set expiry time before switch_hrtimer_base()"
2014-07-02 19:52 [PATCH RT 0/3] Linux 3.10.44-rt46-rc1 Steven Rostedt
2014-07-02 19:52 ` [PATCH RT 1/3] timer: do not spin_trylock() on UP Steven Rostedt
@ 2014-07-02 19:52 ` Steven Rostedt
2014-07-02 19:52 ` [PATCH RT 3/3] Linux 3.10.44-rt46-rc1 Steven Rostedt
2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2014-07-02 19:52 UTC (permalink / raw)
To: linux-kernel, linux-rt-users
Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
John Kacur, Paul Gortmaker, stable-rt, Ben Hutchings
[-- Attachment #1: 0002-Fix-latency-histogram-after-hrtimer-Set-expiry-time-.patch --]
[-- Type: text/plain, Size: 1344 bytes --]
3.10.44-rt46-rc1 stable review patch.
If anyone has any objections, please let me know.
------------------
From: Ben Hutchings <ben@decadent.org.uk>
In an rt-kernel with CONFIG_MISSED_TIMER_OFFSETS_HIST enabled,
__hrtimer_start_range_ns() now crashes, as new_base is not assigned
before it is used.
Tested-by: Carsten Emde <C.Emde@osadl.org>
Cc: stable-rt@vger.kernel.org
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/hrtimer.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index f7a3a7a5a61b..1defbda1def8 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1102,6 +1102,11 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
#endif
}
+ hrtimer_set_expires_range_ns(timer, tim, delta_ns);
+
+ /* Switch the timer base, if necessary: */
+ new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
+
#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
{
ktime_t now = new_base->get_time();
@@ -1113,11 +1118,6 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
}
#endif
- hrtimer_set_expires_range_ns(timer, tim, delta_ns);
-
- /* Switch the timer base, if necessary: */
- new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
^ permalink raw reply related [flat|nested] 4+ messages in thread