perf annotate browser: Circulate percent, total-period and nr-samples view
authorTaeung Song <treeze.taeung@gmail.com>
Fri, 18 Aug 2017 08:47:08 +0000 (17:47 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 18 Aug 2017 14:23:20 +0000 (11:23 -0300)
Using the existing 't' hotkey, support the three views: percent, total
period and number of samples on the annotate TUI browser, circulating
them like below:

  Percent -> Total Period -> Nr Samples -> Percent ...

Committer notes:

Removed new 'e' hotkey, should be resubmitted as a separate patch, with
proper justification for its inclusion.

Suggested-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Milian Wolff <milian.wolff@kdab.com>
Link: http://lkml.kernel.org/r/1503046028-5691-1-git-send-email-treeze.taeung@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/browsers/annotate.c

index faca1b94496e3e592c0828cb861bedaa8c079acc..ba0aee576a2b86cc8e2843d087ffbfc13be4adc7 100644 (file)
@@ -835,7 +835,7 @@ static int annotate_browser__run(struct annotate_browser *browser,
                "n             Search next string\n"
                "o             Toggle disassembler output/simplified view\n"
                "s             Toggle source code view\n"
-               "t             Toggle total period view\n"
+               "t             Circulate percent, total period, samples view\n"
                "/             Search string\n"
                "k             Toggle line numbers\n"
                "r             Run available scripts\n"
@@ -912,8 +912,13 @@ show_sup_ins:
                        }
                        continue;
                case 't':
-                       annotate_browser__opts.show_total_period =
-                         !annotate_browser__opts.show_total_period;
+                       if (annotate_browser__opts.show_total_period) {
+                               annotate_browser__opts.show_total_period = false;
+                               annotate_browser__opts.show_nr_samples = true;
+                       } else if (annotate_browser__opts.show_nr_samples)
+                               annotate_browser__opts.show_nr_samples = false;
+                       else
+                               annotate_browser__opts.show_total_period = true;
                        annotate_browser__update_addr_width(browser);
                        continue;
                case K_LEFT: