Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1331135 > unrolled thread

Re: [PATCH 16/23] perf hists browser: Count number of hierarchy entries

Started byJiri Olsa <jolsa@redhat.com>
First post2016-02-10 14:00 +0100
Last post2016-02-10 15:50 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 16/23] perf hists browser: Count number of hierarchy  entries Jiri Olsa <jolsa@redhat.com> - 2016-02-10 14:00 +0100
    Re: [PATCH 16/23] perf hists browser: Count number of hierarchy  entries Namhyung Kim <namhyung@kernel.org> - 2016-02-10 15:50 +0100

#1331135 — Re: [PATCH 16/23] perf hists browser: Count number of hierarchy entries

FromJiri Olsa <jolsa@redhat.com>
Date2016-02-10 14:00 +0100
SubjectRe: [PATCH 16/23] perf hists browser: Count number of hierarchy entries
Message-ID<r0Cxd-2iO-15@gated-at.bofh.it>
On Fri, Feb 05, 2016 at 10:01:48PM +0900, Namhyung Kim wrote:

SNIP

> +static int hierarchy_count_rows(struct hist_browser *hb, struct hist_entry *he,
> +				bool include_children)
> +{
> +	int count = 0;
> +	struct rb_node *node;
> +	struct hist_entry *child;
> +
> +	if (he->leaf)
> +		return callchain__count_rows(&he->sorted_chain);
> +
> +	node = rb_first(&he->hroot_out);
> +	while (node) {
> +		float percent;
> +
> +		child = rb_entry(node, struct hist_entry, rb_node);
> +		percent = hist_entry__get_percent_limit(child);
> +
> +		if (!child->filtered && percent >= hb->min_pcnt) {
> +			count++;
> +
> +			if (include_children && child->unfolded)
> +				count += hierarchy_count_rows(hb, child, true);
> +		}
> +
> +		node = rb_next(node);
> +	}
> +	return count;
> +}

SNIP

> +		if (he->leaf)
> +			browser->nr_callchain_rows -= he->nr_rows;
>  		else
> +			browser->nr_hierarchy_entries -= he->nr_rows;
> +
> +		if (symbol_conf.report_hierarchy)
> +			child_rows = hierarchy_count_rows(browser, he, true);
> +
> +		if (he->unfolded) {
> +			if (he->leaf)
> +				he->nr_rows = callchain__count_rows(&he->sorted_chain);
> +			else
> +				he->nr_rows = hierarchy_count_rows(browser, he, false);

looks like above condition could go to just following call:

			he->nr_rows = hierarchy_count_rows(browser, he, false);

because there's same condtiion in the hierarchy_count_rows function

thanks,
jirka

[toc] | [next] | [standalone]


#1331228

FromNamhyung Kim <namhyung@kernel.org>
Date2016-02-10 15:50 +0100
Message-ID<r0EfE-3qm-25@gated-at.bofh.it>
In reply to#1331135
On Wed, Feb 10, 2016 at 01:52:08PM +0100, Jiri Olsa wrote:
> On Fri, Feb 05, 2016 at 10:01:48PM +0900, Namhyung Kim wrote:
> 
> SNIP
> 
> > +static int hierarchy_count_rows(struct hist_browser *hb, struct hist_entry *he,
> > +				bool include_children)
> > +{
> > +	int count = 0;
> > +	struct rb_node *node;
> > +	struct hist_entry *child;
> > +
> > +	if (he->leaf)
> > +		return callchain__count_rows(&he->sorted_chain);
> > +
> > +	node = rb_first(&he->hroot_out);
> > +	while (node) {
> > +		float percent;
> > +
> > +		child = rb_entry(node, struct hist_entry, rb_node);
> > +		percent = hist_entry__get_percent_limit(child);
> > +
> > +		if (!child->filtered && percent >= hb->min_pcnt) {
> > +			count++;
> > +
> > +			if (include_children && child->unfolded)
> > +				count += hierarchy_count_rows(hb, child, true);
> > +		}
> > +
> > +		node = rb_next(node);
> > +	}
> > +	return count;
> > +}
> 
> SNIP
> 
> > +		if (he->leaf)
> > +			browser->nr_callchain_rows -= he->nr_rows;
> >  		else
> > +			browser->nr_hierarchy_entries -= he->nr_rows;
> > +
> > +		if (symbol_conf.report_hierarchy)
> > +			child_rows = hierarchy_count_rows(browser, he, true);
> > +
> > +		if (he->unfolded) {
> > +			if (he->leaf)
> > +				he->nr_rows = callchain__count_rows(&he->sorted_chain);
> > +			else
> > +				he->nr_rows = hierarchy_count_rows(browser, he, false);
> 
> looks like above condition could go to just following call:
> 
> 			he->nr_rows = hierarchy_count_rows(browser, he, false);
> 
> because there's same condtiion in the hierarchy_count_rows function

That's true.  But I wrote it that way since it's aligned with other
part of the code.

Thanks,
Namhyung

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web