Current xmon 'dt' command dumps the tracing buffer for all the CPUs,
which makes it possibly hard to read the logs due to the fact that most
of powerpc machines currently have many CPUs. Other than that, the CPU
lines are interleaved in the ftrace log.

This new option just dumps the ftrace buffer for the current CPU.

Signed-off-by: Breno Leitao <lei...@debian.org>
---
 arch/powerpc/xmon/xmon.c | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 08e367e3e8c3..0cbd910193fa 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -234,6 +234,7 @@ Commands:\n\
   "\
   dr   dump stream of raw bytes\n\
   dt   dump the tracing buffers (uses printk)\n\
+  dtc  dump the tracing buffers for current CPU (uses printk)\n\
 "
 #ifdef CONFIG_PPC_POWERNV
 "  dx#   dump xive on CPU #\n\
@@ -2342,6 +2343,19 @@ static void dump_one_paca(int cpu)
        sync();
 }
 
+static void dump_tracing(void)
+{
+       int c;
+
+       c = inchar();
+       if (c == 'c')
+               ftrace_dump(DUMP_ORIG);
+       else
+               ftrace_dump(DUMP_ALL);
+
+       tracing_on();
+}
+
 static void dump_all_pacas(void)
 {
        int cpu;
@@ -2507,6 +2521,11 @@ dump(void)
        }
 #endif
 
+       if (c == 't') {
+               dump_tracing();
+               return;
+       }
+
        if (c == '\n')
                termch = c;
 
@@ -2525,9 +2544,6 @@ dump(void)
                dump_log_buf();
        } else if (c == 'o') {
                dump_opal_msglog();
-       } else if (c == 't') {
-               ftrace_dump(DUMP_ALL);
-               tracing_on();
        } else if (c == 'r') {
                scanhex(&ndump);
                if (ndump == 0)
-- 
2.13.2

Reply via email to