lkml.org 
[lkml]   [2016]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 28/37] perf hists browser: Dynamically change verbosity level
    Date
    From: Alexis Berlemont <alexis.berlemont@gmail.com>

    Here is a small patch which tries to fulfill a point in the perf todo
    list:

    * Make pressing 'V' multiple times to go on cycling thru various
    verbosity levels in 'perf top', so that info that is present in
    'perf top -v' can be obtained without having to restart the tool
    (acme).

    After a small grep in the code, the max verbosity level seems 3; so,
    we cycle at 4; I did not dare define a MAX_VERBOSE_LEVEL constant.

    Signed-off-by: Alexis Berlemont <alexis.berlemont@gmail.com>
    Suggested-and-Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20161012214823.14324-2-alexis.berlemont@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/ui/browsers/hists.c | 5 ++++-
    tools/perf/util/map.c | 17 ++++++++++++-----
    2 files changed, 16 insertions(+), 6 deletions(-)

    diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
    index 31d6d5a7c2dc..ddc4c3e59cc1 100644
    --- a/tools/perf/ui/browsers/hists.c
    +++ b/tools/perf/ui/browsers/hists.c
    @@ -2807,7 +2807,10 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
    do_zoom_dso(browser, actions);
    continue;
    case 'V':
    - browser->show_dso = !browser->show_dso;
    + verbose = (verbose + 1) % 4;
    + browser->show_dso = verbose > 0;
    + ui_helpline__fpush("Verbosity level set to %d\n",
    + verbose);
    continue;
    case 't':
    actions->thread = thread;
    diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
    index c662fef95d14..4f9a71c63026 100644
    --- a/tools/perf/util/map.c
    +++ b/tools/perf/util/map.c
    @@ -682,9 +682,16 @@ static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp
    continue;

    if (verbose >= 2) {
    - fputs("overlapping maps:\n", fp);
    - map__fprintf(map, fp);
    - map__fprintf(pos, fp);
    +
    + if (use_browser) {
    + pr_warning("overlapping maps in %s "
    + "(disable tui for more info)\n",
    + map->dso->name);
    + } else {
    + fputs("overlapping maps:\n", fp);
    + map__fprintf(map, fp);
    + map__fprintf(pos, fp);
    + }
    }

    rb_erase_init(&pos->rb_node, root);
    @@ -702,7 +709,7 @@ static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp

    before->end = map->start;
    __map_groups__insert(pos->groups, before);
    - if (verbose >= 2)
    + if (verbose >= 2 && !use_browser)
    map__fprintf(before, fp);
    map__put(before);
    }
    @@ -717,7 +724,7 @@ static int maps__fixup_overlappings(struct maps *maps, struct map *map, FILE *fp

    after->start = map->end;
    __map_groups__insert(pos->groups, after);
    - if (verbose >= 2)
    + if (verbose >= 2 && !use_browser)
    map__fprintf(after, fp);
    map__put(after);
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-10-24 18:26    [W:2.537 / U:0.304 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site