All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Gabriele Monaco <gmonaco@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Ian Rogers <irogers@google.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-perf-users@vger.kernel.org
Subject: Re: [PATCH 1/2] perf ftrace: Check min/max latency only with bucket range
Date: Thu, 9 Jan 2025 16:46:41 -0800	[thread overview]
Message-ID: <Z4Bt8aIkX5uErX8a@google.com> (raw)
In-Reply-To: <a016ab208eb3ee3821ab59a2520a2bf56645917e.camel@redhat.com>

On Thu, Jan 09, 2025 at 08:53:02AM +0100, Gabriele Monaco wrote:
> On Wed, 2025-01-08 at 13:00 -0800, Namhyung Kim wrote:
> > It's an optional feature and remains 0 when bucket range is not
> > given.
> > And it makes the histogram goes to the last entry always because any
> > latency (num) is greater than or equal to 0.
> 
> Thanks Namhyung for fixing this, something definitely slipped while
> testing..
> 
> I confirm your patches work well also when the bucket range is provided but the
> min latency isn't.
> 
> I'm wondering if it would be cleaner to propagate your changes (using
> min/max latency only if bucket_range is provided) also to
> make_histogram. That function currently works since we assume
> min_latency to be always 0, which is the case but probably not
> considering it altogether would look a bit better and prevent some
> headache in the future.

It looks good.  One thing I concern is 'num += min_latency' before
do_inc.  I put it there to make it symmetric to 'num -= min_latency'
so it should go to inside the block too.

Or you could factor it out as a function like 'i = get_bucket_index(num)'
so that it can keep the original num for the stats.

Thanks,
Namhyung

> 
> ---
>  tools/perf/builtin-ftrace.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/perf/builtin-ftrace.c b/tools/perf/builtin-ftrace.c
> index 076c703e5c334..82d63d7af9d03 100644
> --- a/tools/perf/builtin-ftrace.c
> +++ b/tools/perf/builtin-ftrace.c
> @@ -779,19 +779,16 @@ static void make_histogram(struct perf_ftrace *ftrace, int buckets[],
>  		if (ftrace->use_nsec)
>  			num *= 1000;
>  
> -		i = 0;
> -		if (num < min_latency)
> -			goto do_inc;
> -
> -		num -= min_latency;
> -
>  		if (!ftrace->bucket_range) {
>  			i = log2(num);
>  			if (i < 0)
>  				i = 0;
>  		} else {
> -			// Less than 1 unit (ms or ns), or, in the future,
> -			// than the min latency desired.
> +			i = 0;
> +			if (num < min_latency)
> +				goto do_inc;
> +
> +			num -= min_latency;
>  			if (num > 0) // 1st entry: [ 1 unit .. bucket_range units ]
>  				i = num / ftrace->bucket_range + 1;
>  			if (num >= max_latency - min_latency)
> 
> base-commit: 257ccfaf9fbef6f54eabf1a8f8a8efcc9036439b
> -- 
> 2.47.1
> 

  reply	other threads:[~2025-01-10  0:46 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-08 21:00 [PATCH 1/2] perf ftrace: Check min/max latency only with bucket range Namhyung Kim
2025-01-08 21:00 ` [PATCH 2/2] perf ftrace: Fix display for range of the first bucket Namhyung Kim
2025-01-10 14:08   ` Arnaldo Carvalho de Melo
2025-01-10 14:11     ` Arnaldo Carvalho de Melo
2025-01-09  7:53 ` [PATCH 1/2] perf ftrace: Check min/max latency only with bucket range Gabriele Monaco
2025-01-10  0:46   ` Namhyung Kim [this message]
2025-01-10 10:09     ` Gabriele Monaco
2025-01-10 14:03       ` Arnaldo Carvalho de Melo
2025-01-10 15:11         ` Gabriele Monaco
2025-01-10 18:13           ` Arnaldo Carvalho de Melo

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=Z4Bt8aIkX5uErX8a@google.com \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=gmonaco@redhat.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.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.