summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorCarsten Emde <Carsten.Emde@osadl.org>2009-11-02 00:59:47 +0100
committerThomas Gleixner <tglx@linutronix.de>2009-11-06 12:31:35 +0100
commitd2ac742de047029bb44d0f1b7d4b01c35678a19a (patch)
tree2dc535b46f2e2bcffc677ec67ec978d74c5bba53 /init
parent16731e6ff7c29c4f1a3dc7d4f42ce61e8e4a2f6d (diff)
downloadlwn-d2ac742de047029bb44d0f1b7d4b01c35678a19a.tar.gz
lwn-d2ac742de047029bb44d0f1b7d4b01c35678a19a.zip
ftrace: Add latency histograms of missed timer offsets
A source of system latencies not yet considered in the histograms of effective latencies are delayed timer interrupts. Such latencies are mainly due to disabled interrupts. Recording of effective latencies allows to continuously monitor a system's real-time capabilities under real-world conditions. This patch adds latency histograms of missed timer offsets. If the timer belongs to a sleeper that is about to wakeup a task and the latency is higher than previous latencies of such timers, some data of this task are recorded as well. Adapted and expanded Documentation/trace/histograms.txt. Signed-off-by: Carsten Emde <C.Emde@osadl.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'init')
-rw-r--r--init/main.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c
index bdbdaab0469e..ff438b198fe3 100644
--- a/init/main.c
+++ b/init/main.c
@@ -936,7 +936,15 @@ static int __init kernel_init(void * unused)
WARN_ON(irqs_disabled());
#endif
-#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + defined(CONFIG_STACK_TRACER) + defined(CONFIG_INTERRUPT_OFF_HIST) + defined(CONFIG_PREEMPT_OFF_HIST) + defined(CONFIG_WAKEUP_LATENCY_HIST) + defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + defined(CONFIG_LOCKDEP) + (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))
+#define DEBUG_COUNT (defined(CONFIG_DEBUG_RT_MUTEXES) + \
+ defined(CONFIG_IRQSOFF_TRACER) + defined(CONFIG_PREEMPT_TRACER) + \
+ defined(CONFIG_STACK_TRACER) + defined(CONFIG_INTERRUPT_OFF_HIST) + \
+ defined(CONFIG_PREEMPT_OFF_HIST) + \
+ defined(CONFIG_WAKEUP_LATENCY_HIST) + \
+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST) + \
+ defined(CONFIG_DEBUG_SLAB) + defined(CONFIG_DEBUG_PAGEALLOC) + \
+ defined(CONFIG_LOCKDEP) + \
+ (defined(CONFIG_FTRACE) - defined(CONFIG_FTRACE_MCOUNT_RECORD)))
#if DEBUG_COUNT > 0
printk(KERN_ERR "*****************************************************************************\n");
@@ -968,6 +976,9 @@ static int __init kernel_init(void * unused)
#ifdef CONFIG_WAKEUP_LATENCY_HIST
printk(KERN_ERR "* CONFIG_WAKEUP_LATENCY_HIST *\n");
#endif
+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
+ printk(KERN_ERR "* CONFIG_MISSED_TIMER_OFFSETS_HIST *\n");
+#endif
#ifdef CONFIG_DEBUG_SLAB
printk(KERN_ERR "* CONFIG_DEBUG_SLAB *\n");
#endif