linux/debian/patches/features/all/rt/0274-Latency-histograms-Det...

39 lines
1.3 KiB
Diff

From 9b8ee4b19fa92ca0868411f2cb5754fb72f226c5 Mon Sep 17 00:00:00 2001
From: Carsten Emde <C.Emde@osadl.org>
Date: Wed, 11 Jul 2012 22:05:19 +0000
Subject: [PATCH 274/282] Latency histograms: Detect another yet overlooked
sharedprio condition
While waiting for an RT process to be woken up, the previous process may
go to wait and switch to another one with the same priority which then
becomes current. This condition was not correctly recognized and led to
erroneously high latency recordings during periods of low CPU load.
This patch correctly marks such latencies as sharedprio and prevents
them from being recorded as actual system latency.
Signed-off-by: Carsten Emde <C.Emde@osadl.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/latency_hist.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
index d514eef..6a4c869 100644
--- a/kernel/trace/latency_hist.c
+++ b/kernel/trace/latency_hist.c
@@ -935,6 +935,9 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
goto out;
}
+ if (current->prio == cpu_wakeup_task->prio)
+ per_cpu(wakeup_sharedprio, cpu) = 1;
+
/*
* The task we are waiting for is about to be switched to.
* Calculate latency and store it in histogram.
--
1.7.10