summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorCarsten Emde <C.Emde@osadl.org>2011-07-19 13:03:41 (GMT)
committerScott Wood <scottwood@freescale.com>2014-05-14 18:37:52 (GMT)
commite77962aa74281cf85e5ec12a5a208669d4b4025f (patch)
treeb83fdbc3f5ad285b7994244b4a766a7601e5d933 /include/linux
parent60ddd28d309d5b9ad7a8c3365c9aa34274011b08 (diff)
downloadlinux-fsl-qoriq-e77962aa74281cf85e5ec12a5a208669d4b4025f.tar.xz
latency-hist.patch
This patch provides a recording mechanism to store data of potential sources of system latencies. The recordings separately determine the latency caused by a delayed timer expiration, by a delayed wakeup of the related user space program and by the sum of both. The histograms can be enabled and reset individually. The data are accessible via the debug filesystem. For details please consult Documentation/trace/histograms.txt. Signed-off-by: Carsten Emde <C.Emde@osadl.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/hrtimer.h3
-rw-r--r--include/linux/sched.h6
2 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index d19a5c2..f00fcfc 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -111,6 +111,9 @@ struct hrtimer {
enum hrtimer_restart (*function)(struct hrtimer *);
struct hrtimer_clock_base *base;
unsigned long state;
+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
+ ktime_t praecox;
+#endif
#ifdef CONFIG_TIMER_STATS
int start_pid;
void *start_site;
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 85556ee..705fbb0 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1398,6 +1398,12 @@ struct task_struct {
unsigned long trace;
/* bitmask and counter of trace recursion */
unsigned long trace_recursion;
+#ifdef CONFIG_WAKEUP_LATENCY_HIST
+ u64 preempt_timestamp_hist;
+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
+ long timer_offset;
+#endif
+#endif
#endif /* CONFIG_TRACING */
#ifdef CONFIG_MEMCG /* memcg uses this to do batch job */
struct memcg_batch_info {