diff options
author | Carsten Emde <C.Emde@osadl.org> | 2011-07-19 13:03:41 (GMT) |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2014-05-14 18:37:52 (GMT) |
commit | e77962aa74281cf85e5ec12a5a208669d4b4025f (patch) | |
tree | b83fdbc3f5ad285b7994244b4a766a7601e5d933 /include/linux | |
parent | 60ddd28d309d5b9ad7a8c3365c9aa34274011b08 (diff) | |
download | linux-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.h | 3 | ||||
-rw-r--r-- | include/linux/sched.h | 6 |
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 { |