[PATCH v2] tracing/core: Add current context on tracing recursion warning

From: Frederic Weisbecker
Date: Sun Apr 19 2009 - 10:18:16 EST


In case of tracing recursion detection, we only get the stacktrace.
But the current context may be very useful to debug the issue.

This patch adds the softirq/hardirq/nmi context with the warning
using lockdep context display to have a familiar output.

v2: Use printk_once()

[ Impact: more information in tracing recursion ]

Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
---
kernel/trace/ring_buffer.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index b421b0e..e315178 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -1495,6 +1495,16 @@ static int trace_recursive_lock(void)
if (unlikely(current->trace_recursion & (1 << level))) {
/* Disable all tracing before we do anything else */
tracing_off_permanent();
+
+ printk_once(KERN_WARNING "Tracing recursion: "
+ "[HC%u[%lu]:SC%u[%lu]:NMI[%lu]:HE%u:SE%u]\n",
+ current->hardirq_context,
+ hardirq_count() >> HARDIRQ_SHIFT,
+ current->softirq_context,
+ softirq_count() >> SOFTIRQ_SHIFT,
+ in_nmi(), current->hardirqs_enabled,
+ current->softirqs_enabled);
+
WARN_ON_ONCE(1);
return -1;
}
--
1.6.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/