From: Namhyung Kim <namhyung@kernel.org>
To: Jiri Olsa <jolsa@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Ingo Molnar <mingo@kernel.org>, Paul Mackerras <paulus@samba.org>,
Namhyung Kim <namhyung.kim@lge.com>,
LKML <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>, Andi Kleen <andi@firstfloor.org>
Subject: Re: [PATCH 7/7] perf hists/tui: Count callchain rows separately
Date: Wed, 23 Apr 2014 23:57:33 +0900 [thread overview]
Message-ID: <1398265053.1696.21.camel@leonhard> (raw)
In-Reply-To: <20140423142915.GA27585@krava.brq.redhat.com>
2014-04-23 (수), 16:29 +0200, Jiri Olsa:
> On Wed, Apr 23, 2014 at 04:00:08PM +0900, Namhyung Kim wrote:
> > When TUI hist browser expands/collapses callchains it accounted number
> > of callchain nodes into total entries to show. However this code
> > ignores filtering so that it can make the cursor go to out of screen.
>
> SNIP
>
> hi,
> I needed following patch, otherwise following test case would segfault
>
> - record with -g
> - report - unfold one symbol
> - search for nonsense
>
> the reason is that after unfolding the symbol the nr_callchain_rows
> will get some number, which will cause the hist_browser__nr_entries
> function return (entries != 0) actually (entries == nr_callchain_rows)
> even if there's no entry passing the filter
Argh, right.. Thanks for spotting this. I guess other filters (thread,
dso) have same problem.
>
> fixing that by unfolding everything after the filter and reseting
> the nr_callchain_rows number
Hmm.. I think hists__remove_entry_filter() already folds them so how
about just setting ->nr_callchain_rows to 0 in hist_browser__reset()
instead?
Thanks,
Namhyung
>
> feel free to merge this with your change if you agree ;-)
>
> thanks,
> jirka
>
>
> ---
> diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
> index 5b81c0d..1cf5f45 100644
> --- a/tools/perf/ui/browsers/hists.c
> +++ b/tools/perf/ui/browsers/hists.c
> @@ -312,6 +312,8 @@ __hist_browser__set_folding(struct hist_browser *browser, bool unfold)
> struct rb_node *nd;
> struct hists *hists = browser->hists;
>
> + browser->nr_callchain_rows = 0;
> +
> for (nd = rb_first(&hists->entries);
> (nd = hists__filter_entries(nd, hists, browser->min_pcnt)) != NULL;
> nd = rb_next(nd)) {
> @@ -323,7 +325,6 @@ __hist_browser__set_folding(struct hist_browser *browser, bool unfold)
>
> static void hist_browser__set_folding(struct hist_browser *browser, bool unfold)
> {
> - browser->nr_callchain_rows = 0;
> __hist_browser__set_folding(browser, unfold);
>
> browser->b.nr_entries = hist_browser__nr_entries(browser);
> @@ -1507,6 +1508,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
> delay_secs * 2) == K_ENTER) {
> hists->symbol_filter_str = *buf ? buf : NULL;
> hists__filter_by_symbol(hists);
> + __hist_browser__set_folding(browser, false);
> hist_browser__reset(browser);
> }
> continue;
next prev parent reply other threads:[~2014-04-23 14:57 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-23 7:00 [PATCHSET 0/7] perf tools: Fixup for the --percentage change (v2) Namhyung Kim
2014-04-23 7:00 ` [PATCH 1/7] perf report: Count number of entries separately Namhyung Kim
2014-04-23 7:00 ` [PATCH 2/7] perf tools: Account entry stats when it's added to the output tree Namhyung Kim
2014-04-23 13:35 ` Jiri Olsa
2014-04-23 14:43 ` Namhyung Kim
2014-04-23 7:00 ` [PATCH 3/7] perf hists: Add missing update on filtered stats in hists__decay_entries() Namhyung Kim
2014-04-23 7:00 ` [PATCH 4/7] perf ui/tui: Fix off-by-one in hist_browser__update_nr_entries() Namhyung Kim
2014-04-23 7:00 ` [PATCH 5/7] perf ui/tui: Rename hist_browser__update_nr_entries() Namhyung Kim
2014-04-23 7:00 ` [PATCH 6/7] perf top/tui: Update nr_entries properly after a filter is applied Namhyung Kim
2014-04-23 7:00 ` [PATCH 7/7] perf hists/tui: Count callchain rows separately Namhyung Kim
2014-04-23 14:29 ` Jiri Olsa
2014-04-23 14:57 ` Namhyung Kim [this message]
2014-04-23 15:07 ` Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398265053.1696.21.camel@leonhard \
--to=namhyung@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=andi@firstfloor.org \
--cc=dsahern@gmail.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung.kim@lge.com \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.