lkml.org 
[lkml]   [2015]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCHv2 2/2] perf hists browser: Fix UI bug after zoom into thread/dso/symbol
    Em Wed, Mar 11, 2015 at 08:36:03PM +0800, He Kuang escreveu:
    > When zoom into thread/dso/symbol, the fold/unfold stat is cleared in
    > hists__filter_by_thread/dso/symbol(), but h->nr_rows is not cleared. So
    > if we toggle fold stat on the unfold entires, nr_entries got a wrong
    > value.
    >
    > This bug can be reproduced as follows:
    >
    > $ perf record -g -e syscalls:sys_enter_open ls
    > $ perf report

    Thanks, bug reproduced and seems fixed after the patch, applying,

    - Arnaldo

    > Children Self Command Shared Object Symbol
    > ================================================================
    > + 50.00% 0.00% ls ld64.so [.] _dl_get_ready_to_run
    > - 50.00% 0.00% ls ld64.so [.] _dl_load_shared_library
    > _dl_load_shared_library <= [Zoom into thread/dso]
    > _dl_get_ready_to_run
    > _start
    > ...
    >
    > In the new thread hists, all entries reset to fold, if we unfold the
    > same entry as we previously unfolded, nr_entries got wrong value, and we
    > can't move down cursor to bottom row.
    >
    > Thread: ls
    > Children Self Command Shared Object Symbol
    > ================================================================
    > + 50.00% 0.00% ls ld64.so [.] _dl_get_ready_to_run
    > - 50.00% 0.00% ls ld64.so [.] _dl_load_shared_library
    > _dl_load_shared_library
    > _dl_get_ready_to_run <= [cursor may stop here, can't move down]
    > _start
    > ...
    >
    > This patch clear h->nr_rows to fix this bug.
    >
    > Signed-off-by: He Kuang <hekuang@huawei.com>
    > ---
    > tools/perf/util/hist.c | 1 +
    > 1 file changed, 1 insertion(+)
    >
    > diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
    > index 70b48a6..24aff7d 100644
    > --- a/tools/perf/util/hist.c
    > +++ b/tools/perf/util/hist.c
    > @@ -1169,6 +1169,7 @@ static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h
    > /* force fold unfiltered entry for simplicity */
    > h->ms.unfolded = false;
    > h->row_offset = 0;
    > + h->nr_rows = 0;
    >
    > hists->stats.nr_non_filtered_samples += h->stat.nr_events;
    >
    > --
    > 2.2.0.33.gc18b867


    \
     
     \ /
      Last update: 2015-03-11 15:21    [W:4.822 / U:0.396 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site