lkml.org 
[lkml]   [2023]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v3 05/50] perf hist: Add missing puts to hist__account_cycles
    From
    Caught using reference count checking on perf top with
    "--call-graph=lbr". After this no memory leaks were detected.

    Fixes: 57849998e2cd ("perf report: Add processing for cycle histograms")
    Signed-off-by: Ian Rogers <irogers@google.com>
    ---
    tools/perf/util/hist.c | 10 +++++++---
    1 file changed, 7 insertions(+), 3 deletions(-)

    diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
    index cde0078e6c90..0aa7e231172a 100644
    --- a/tools/perf/util/hist.c
    +++ b/tools/perf/util/hist.c
    @@ -2676,8 +2676,6 @@ void hist__account_cycles(struct branch_stack *bs, struct addr_location *al,

    /* If we have branch cycles always annotate them. */
    if (bs && bs->nr && entries[0].flags.cycles) {
    - int i;
    -
    bi = sample__resolve_bstack(sample, al);
    if (bi) {
    struct addr_map_symbol *prev = NULL;
    @@ -2692,7 +2690,7 @@ void hist__account_cycles(struct branch_stack *bs, struct addr_location *al,
    * Note that perf stores branches reversed from
    * program order!
    */
    - for (i = bs->nr - 1; i >= 0; i--) {
    + for (int i = bs->nr - 1; i >= 0; i--) {
    addr_map_symbol__account_cycles(&bi[i].from,
    nonany_branch_mode ? NULL : prev,
    bi[i].flags.cycles);
    @@ -2701,6 +2699,12 @@ void hist__account_cycles(struct branch_stack *bs, struct addr_location *al,
    if (total_cycles)
    *total_cycles += bi[i].flags.cycles;
    }
    + for (unsigned int i = 0; i < bs->nr; i++) {
    + map__put(bi[i].to.ms.map);
    + maps__put(bi[i].to.ms.maps);
    + map__put(bi[i].from.ms.map);
    + maps__put(bi[i].from.ms.maps);
    + }
    free(bi);
    }
    }
    --
    2.42.0.758.gaed0368e0e-goog
    \
     
     \ /
      Last update: 2023-10-25 00:25    [W:5.196 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site