summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorCarsten Emde <Carsten.Emde@osadl.org>2009-09-15 02:20:37 +0200
committerThomas Gleixner <tglx@linutronix.de>2009-09-15 22:09:27 +0200
commitcc2fa4463d673896b9904c4142c6377d0d1d93e6 (patch)
tree3be6139de0e1a65f685064d1c80f687736440c4f /init
parentedc1a1c366af0d1c755f159b3ac503812e166173 (diff)
downloadlwn-cc2fa4463d673896b9904c4142c6377d0d1d93e6.tar.gz
lwn-cc2fa4463d673896b9904c4142c6377d0d1d93e6.zip
tracing: Add histograms of potential and effective wakeup latencies
Resuscitated and enhanced the kernel latency histograms provided originally by Yi Yang and adapted and converted by Steven Rostedt. Latency histograms in the current version - can be enabled online and independently - have virtually no performance penalty when configured but not enabled - have very little performance penalty when enabled - use already available wakeup and switch tracepoints - give corresponding results with the related tracer - allow to record wakeup latency histograms of a single process - record the process where the highest wakeup latency occurred - are documented in Documentation/trace/histograms.txt Signed-off-by: Carsten Emde <C.Emde@osadl.org> Cc: Steven Rostedt <rostedt@goodmis.org> LKML-Reference: <4AAEDDD5.4040505@osadl.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'init')
-rw-r--r--init/main.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/init/main.c b/init/main.c
index 6ddf35d55822..bdbdaab0469e 100644
--- a/init/main.c
+++ b/init/main.c
@@ -936,7 +936,7 @@ 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_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_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");
@@ -956,9 +956,15 @@ static int __init kernel_init(void * unused)
#ifdef CONFIG_PREEMPT_TRACER
printk(KERN_ERR "* CONFIG_PREEMPT_TRACER *\n");
#endif
-#ifdef CONFIG_FTRACE
+#if defined(CONFIG_FTRACE) && !defined(CONFIG_FTRACE_MCOUNT_RECORD)
printk(KERN_ERR "* CONFIG_FTRACE *\n");
#endif
+#ifdef CONFIG_INTERRUPT_OFF_HIST
+ printk(KERN_ERR "* CONFIG_INTERRUPT_OFF_HIST *\n");
+#endif
+#ifdef CONFIG_PREEMPT_OFF_HIST
+ printk(KERN_ERR "* CONFIG_PREEMPT_OFF_HIST *\n");
+#endif
#ifdef CONFIG_WAKEUP_LATENCY_HIST
printk(KERN_ERR "* CONFIG_WAKEUP_LATENCY_HIST *\n");
#endif