39 lines
1.3 KiB
Diff
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
|
|
|