All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
To: Namhyung Kim <namhyung@kernel.org>
Cc: 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>, Jiri Olsa <jolsa@redhat.com>,
	David Ahern <dsahern@gmail.com>, Andi Kleen <andi@firstfloor.org>
Subject: Re: [PATCH 3/9] perf hists: Add support for showing relative percentage
Date: Tue, 18 Mar 2014 17:08:37 -0300	[thread overview]
Message-ID: <20140318200837.GG6482@ghostprotocols.net> (raw)
In-Reply-To: <1394437440-11609-4-git-send-email-namhyung@kernel.org>

Em Mon, Mar 10, 2014 at 04:43:54PM +0900, Namhyung Kim escreveu:
> @@ -695,12 +695,17 @@ static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h
>  	if (h->filtered)
>  		return;
>  
> -	++hists->nr_entries;
> -	if (h->ms.unfolded)
> +	hists->nr_entries++;
> +	hists->nr_non_filtered_entries++;

Why not keep existing practice? prefix or suffix generates the same
code, changing it from prefix to suffix increment just adds noise to the
patch :-\

Also, this is why I was asking about nr_entries and total_period being
invariant, looking at this function we can see it is _not_ invariant, as
when we apply/remove filters we touch them.

This is why I made the comment (in a private conversation) about having
a invariant_total_period invariant_nr_entries pair (I think I used some
other naming) while knowing that the existing variables nr_entries and
total_period are actually subjected to the filters being used.

I.e. to avoid confusion we need to make total_entries and nr_entries
never change when a filter is applied, touching only two new variables
for non_filtered total_period and nr_entries.

I'll try doing it if you don't do it first, but will first process some
more patches and submit what I already processed.

- Arnaldo

> +	if (h->ms.unfolded) {
>  		hists->nr_entries += h->nr_rows;
> +		hists->nr_non_filtered_entries += h->nr_rows;
> +	}
>  	h->row_offset = 0;
>  	hists->stats.total_period += h->stat.period;
> +	hists->stats.total_non_filtered_period += h->stat.period;
>  	hists->stats.nr_events[PERF_RECORD_SAMPLE] += h->stat.nr_events;
> +	hists->stats.nr_non_filtered_samples += h->stat.nr_events;
>  
>  	hists__calc_col_len(hists, h);
>  }
> @@ -723,7 +728,9 @@ void hists__filter_by_dso(struct hists *hists)
>  	struct rb_node *nd;
>  
>  	hists->nr_entries = hists->stats.total_period = 0;
> +	hists->nr_non_filtered_entries = hists->stats.total_non_filtered_period = 0;
>  	hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
> +	hists->stats.nr_non_filtered_samples = 0;
>  	hists__reset_col_len(hists);
>  
>  	for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
> @@ -756,7 +763,9 @@ void hists__filter_by_thread(struct hists *hists)
>  	struct rb_node *nd;
>  
>  	hists->nr_entries = hists->stats.total_period = 0;
> +	hists->nr_non_filtered_entries = hists->stats.total_non_filtered_period = 0;
>  	hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
> +	hists->stats.nr_non_filtered_samples = 0;
>  	hists__reset_col_len(hists);
>  
>  	for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
> @@ -787,7 +796,9 @@ void hists__filter_by_symbol(struct hists *hists)
>  	struct rb_node *nd;
>  
>  	hists->nr_entries = hists->stats.total_period = 0;
> +	hists->nr_non_filtered_entries = hists->stats.total_non_filtered_period = 0;
>  	hists->stats.nr_events[PERF_RECORD_SAMPLE] = 0;
> +	hists->stats.nr_non_filtered_samples = 0;
>  	hists__reset_col_len(hists);
>  
>  	for (nd = rb_first(&hists->entries); nd; nd = rb_next(nd)) {
> diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
> index a149f1adaae4..213551469f36 100644
> --- a/tools/perf/util/hist.h
> +++ b/tools/perf/util/hist.h
> @@ -41,6 +41,7 @@ struct events_stats {
>  	u64 total_lost;
>  	u64 total_invalid_chains;
>  	u32 nr_events[PERF_RECORD_HEADER_MAX];
> +	u32 nr_non_filtered_samples;
>  	u32 nr_lost_warned;
>  	u32 nr_unknown_events;
>  	u32 nr_invalid_chains;
> @@ -84,6 +85,7 @@ struct hists {
>  	struct rb_root		entries;
>  	struct rb_root		entries_collapsed;
>  	u64			nr_entries;
> +	u64			nr_non_filtered_entries;
>  	const struct thread	*thread_filter;
>  	const struct dso	*dso_filter;
>  	const char		*uid_filter_str;
> -- 
> 1.7.11.7

  reply	other threads:[~2014-03-18 20:08 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-10  7:43 [PATCHSET 0/9] perf tools: Update on filtered entries' percentage output (v7) Namhyung Kim
2014-03-10  7:43 ` [PATCH 1/9] perf tools: Pass evsel to hpp->header/width functions explicitly Namhyung Kim
2014-03-18  8:30   ` [tip:perf/core] perf ui hists: Pass evsel to hpp->header/ width " tip-bot for Namhyung Kim
2014-03-10  7:43 ` [PATCH 2/9] perf tools: Count periods of filtered entries separately Namhyung Kim
2014-03-17 20:08   ` Arnaldo Carvalho de Melo
2014-03-18  4:19     ` Namhyung Kim
2014-03-18  4:25       ` Namhyung Kim
2014-03-18 13:15       ` Arnaldo Carvalho de Melo
2014-03-18 13:18         ` Arnaldo Carvalho de Melo
2014-03-18 14:11           ` Namhyung Kim
2014-03-10  7:43 ` [PATCH 3/9] perf hists: Add support for showing relative percentage Namhyung Kim
2014-03-18 20:08   ` Arnaldo Carvalho de Melo [this message]
2014-03-19  0:18     ` Namhyung Kim
2014-03-19 20:25       ` Arnaldo Carvalho de Melo
2014-03-10  7:43 ` [PATCH 4/9] perf report: Add --percentage option Namhyung Kim
2014-03-10  7:43 ` [PATCH 5/9] perf top: " Namhyung Kim
2014-03-10  7:43 ` [PATCH 6/9] perf diff: " Namhyung Kim
2014-03-10  7:43 ` [PATCH 7/9] perf tools: Add hist.percentage config option Namhyung Kim
2014-03-10  7:43 ` [PATCH 8/9] perf ui/tui: Add 'F' hotkey to toggle percentage output Namhyung Kim
2014-03-10  7:44 ` [PATCH 9/9] perf tools: Show absolute percentage by default Namhyung Kim
2014-03-10 22:08 ` [PATCHSET 0/9] perf tools: Update on filtered entries' percentage output (v7) Andi Kleen
2014-03-11  2:58   ` Davidlohr Bueso
2014-03-11  2:59     ` Davidlohr Bueso
2014-03-11  7:57     ` Namhyung Kim
2014-03-11  7:45   ` Namhyung Kim
2014-03-17  8:05 ` 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=20140318200837.GG6482@ghostprotocols.net \
    --to=acme@ghostprotocols.net \
    --cc=a.p.zijlstra@chello.nl \
    --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=namhyung@kernel.org \
    --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.