All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@gmail.com>
To: Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Jiri Olsa <jolsa@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
	David Ahern <dsahern@gmail.com>, Andi Kleen <andi@firstfloor.org>,
	Stephane Eranian <eranian@google.com>,
	Wang Nan <wangnan0@huawei.com>
Subject: Re: [PATCH 13/23] perf hists: Support filtering in hierarchy mode
Date: Wed, 10 Feb 2016 23:00:54 +0900	[thread overview]
Message-ID: <1455112854.3708.7.camel@gmail.com> (raw)
In-Reply-To: <20160210115122.GA19907@krava.redhat.com>

Hi Jiri,

2016-02-10 (수), 12:51 +0100, Jiri Olsa:
> On Fri, Feb 05, 2016 at 10:01:45PM +0900, Namhyung Kim wrote:
> 
> SNIP
> 
> > +			parent = parent->parent_he;
> > +		}
> > +	}
> > +
> >  	if (h->filtered)
> >  		return;
> >  
> > @@ -1592,28 +1613,122 @@ static void hists__filter_by_type(struct hists *hists, int type, filter_fn_t fil
> >  	}
> >  }
> >  
> > +static void hists__filter_hierarchy(struct hists *hists, int type, const void *arg)
> > +{
> > +	struct rb_node *nd;
> > +	struct rb_root tmp = RB_ROOT;
> > +	bool saved_unfolded;
> > +
> > +	hists->stats.nr_non_filtered_samples = 0;
> > +
> > +	hists__reset_filter_stats(hists);
> > +	hists__reset_col_len(hists);
> > +
> > +	nd = rb_first(&hists->entries);
> > +	while (nd) {
> > +		struct hist_entry *h = rb_entry(nd, struct hist_entry, rb_node);
> > +		int ret;
> > +
> > +		ret = hist_entry__filter(h, type, arg);
> > +
> > +		/*
> > +		 * case 1. non-matching type
> > +		 * zero out the period, set filtered and move to child
> > +		 */
> > +		if (ret < 0) {
> > +			memset(&h->stat, 0, sizeof(h->stat));
> > +			h->filtered |= (1 << type);
> > +
> > +			/* force to go down in the hierarchy */
> > +			saved_unfolded = h->unfolded;
> > +			h->unfolded = true;
> > +
> > +			nd = rb_hierarchy_next(&h->rb_node);
> > +			h->unfolded = saved_unfolded;
> > +		}
> > +		/*
> > +		 * case 2. matched (filter out)
> > +		 * set filtered and move to next
> > +		 */
> > +		else if (ret == 1) {
> 
> slightly confused in here.. so ret == 1 means we matched
> but for example hist_entry__sym_filter:
> 
> +       return sym && (!he->ms.sym || !strstr(he->ms.sym->name, sym));
> 
> returns 1 if we DONT match the symbol

Yes, this was confusing.  I meant it's a matching *type* but
the filter is not matched.


> 
> I always got confused by non/filtered stuff.. I think we should change
> the those names, but haven't come with anything so far..

Yeah, me too.. Filter can have both semantics - opt-in and opt-out.
It also made me hard to choose a good name.

Thanks,
Namhyung

  reply	other threads:[~2016-02-10 14:02 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-05 13:01 [PATCHSET 00/23] perf tools: Add support for hierachy view (v5) Namhyung Kim
2016-02-05 13:01 ` [PATCH 01/23] perf hists browser: Fix percentage update on key press Namhyung Kim
2016-02-05 13:01 ` [PATCH 02/23] perf callchain: Check return value of add_child() Namhyung Kim
2016-02-05 13:01 ` [PATCH 03/23] perf callchain: Check return value of fill_node() Namhyung Kim
2016-02-05 13:01 ` [PATCH 04/23] perf callchain: Add enum match_result for match_chain() Namhyung Kim
2016-02-05 13:01 ` [PATCH 05/23] perf callchain: Check return value of split_add_child() Namhyung Kim
2016-02-05 13:01 ` [PATCH 06/23] perf callchain: Check return value of append_chain_children() Namhyung Kim
2016-02-05 13:01 ` [PATCH 07/23] perf hists: Return error from hists__collapse_resort() Namhyung Kim
2016-02-05 13:01 ` [PATCH 08/23] perf report: Check error during report__collapse_hists() Namhyung Kim
2016-02-05 13:01 ` [PATCH 09/23] perf hists: Basic support of hierarchical report view Namhyung Kim
2016-02-05 13:01 ` [PATCH 10/23] perf hists: Resort hist entries with hierarchy Namhyung Kim
2016-02-05 13:01 ` [PATCH 11/23] perf hists: Add helper functions for hierarchy mode Namhyung Kim
2016-02-05 13:01 ` [PATCH 12/23] perf hists: Introduce hist_entry__filter() Namhyung Kim
2016-02-05 13:01 ` [PATCH 13/23] perf hists: Support filtering in hierarchy mode Namhyung Kim
2016-02-10 11:51   ` Jiri Olsa
2016-02-10 14:00     ` Namhyung Kim [this message]
2016-02-10 12:11   ` Jiri Olsa
2016-02-10 14:16     ` Namhyung Kim
2016-02-05 13:01 ` [PATCH 14/23] perf ui/stdio: Implement hierarchy output mode Namhyung Kim
2016-02-09 22:01   ` Jiri Olsa
2016-02-10 14:21     ` Namhyung Kim
2016-02-10 12:13   ` Jiri Olsa
2016-02-10 14:25     ` Namhyung Kim
2016-02-10 12:23   ` Jiri Olsa
2016-02-10 12:29     ` Jiri Olsa
2016-02-10 14:27       ` Namhyung Kim
2016-02-05 13:01 ` [PATCH 15/23] perf ui/stdio: Align column header for hierarchy output Namhyung Kim
2016-02-10 12:40   ` Jiri Olsa
2016-02-10 14:32     ` Namhyung Kim
2016-02-05 13:01 ` [PATCH 16/23] perf hists browser: Count number of hierarchy entries Namhyung Kim
2016-02-10 12:52   ` Jiri Olsa
2016-02-10 14:42     ` Namhyung Kim
2016-02-05 13:01 ` [PATCH 17/23] perf hists browser: Support collapsing/expanding whole entries in hierarchy Namhyung Kim
2016-02-05 13:01 ` [PATCH 18/23] perf hists browser: Implement hierarchy output Namhyung Kim
2016-02-05 13:01 ` [PATCH 19/23] perf hists browser: Align column header in hierarchy mode Namhyung Kim
2016-02-05 13:01 ` [PATCH 20/23] perf ui/gtk: Implement hierarchy output mode Namhyung Kim
2016-02-05 13:01 ` [PATCH 21/23] perf report: Add --hierarchy option Namhyung Kim
2016-02-05 13:01 ` [PATCH 22/23] perf hists: Support decaying in hierarchy mode Namhyung Kim
2016-02-05 13:01 ` [PATCH 23/23] perf top: Add --hierarchy option Namhyung Kim
2016-02-09 22:37   ` Jiri Olsa
2016-02-10 13:19     ` Jiri Olsa
2016-02-10 14:46       ` Namhyung Kim

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=1455112854.3708.7.camel@gmail.com \
    --to=namhyung@gmail.com \
    --cc=acme@kernel.org \
    --cc=andi@firstfloor.org \
    --cc=dsahern@gmail.com \
    --cc=eranian@google.com \
    --cc=jolsa@kernel.org \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=wangnan0@huawei.com \
    /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.