All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Cc: acme@kernel.org, alexander.shishkin@linux.intel.com,
	namhyung@kernel.org, yao.jin@linux.intel.com,
	linux-kernel@vger.kernel.org, yuzhoujian@didichuxing.com,
	tmricht@linux.vnet.ibm.com, anton@samba.org
Subject: Re: [RFC 2/2] perf stat: Fix shadow stats for clock events
Date: Thu, 15 Nov 2018 15:17:45 +0100	[thread overview]
Message-ID: <20181115141745.GJ9600@krava> (raw)
In-Reply-To: <20181115095533.16930-2-ravi.bangoria@linux.ibm.com>

On Thu, Nov 15, 2018 at 03:25:33PM +0530, Ravi Bangoria wrote:
> Commit 0aa802a79469 ("perf stat: Get rid of extra clock display
> function") introduced scale and unit for clock events. Thus,
> perf_stat__update_shadow_stats() now saves scaled values of
> clock events in msecs, instead of original nsecs. But while
> calculating values of shadow stats we still consider clock
> event values in nsecs. This results in a wrong shadow stat
> values. Ex,
> 
>   # ./perf stat -e task-clock,cycles ls
>     <SNIP>
>               2.62 msec task-clock:u    #    0.624 CPUs utilized
>          2,501,536      cycles:u        # 1250768.000 GHz
> 
> Fix this by considering clock events's saved stats in msecs:
> 
>   # ./perf stat -e task-clock,cycles ls
>     <SNIP>
>               2.42 msec task-clock:u    #    0.754 CPUs utilized
>          2,338,747      cycles:u        #    1.169 GHz
> 
> Note:
> The problem with this approach is, we are losing fractional part
> while converting nsecs to msecs. This results in a sightly different
> values of shadow stats.

yea, could we just leave the NSEC instead? like below

jirka


---
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index f4bad808bdd9..da8857df238e 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -209,11 +209,12 @@ void perf_stat__update_shadow_stats(struct perf_evsel *counter, u64 count,
 				    int cpu, struct runtime_stat *st)
 {
 	int ctx = evsel_context(counter);
+	u64 count_ns = count;
 
 	count *= counter->scale;
 
 	if (perf_evsel__is_clock(counter))
-		update_runtime_stat(st, STAT_NSECS, 0, cpu, count);
+		update_runtime_stat(st, STAT_NSECS, 0, cpu, count_ns);
 	else if (perf_evsel__match(counter, HARDWARE, HW_CPU_CYCLES))
 		update_runtime_stat(st, STAT_CYCLES, ctx, cpu, count);
 	else if (perf_stat_evsel__is(counter, CYCLES_IN_TX))

  reply	other threads:[~2018-11-15 14:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-15  9:55 [PATCH 1/2] perf stat: Use perf_evsel__is_clocki() for clock events Ravi Bangoria
2018-11-15  9:55 ` [RFC 2/2] perf stat: Fix shadow stats " Ravi Bangoria
2018-11-15 14:17   ` Jiri Olsa [this message]
2018-11-16  4:28     ` [PATCH] " Ravi Bangoria
2018-11-16 13:35       ` Jiri Olsa
2018-11-26 18:45         ` Arnaldo Carvalho de Melo
2018-11-27  8:20         ` Ravi Bangoria
2018-11-27 12:37           ` Arnaldo Carvalho de Melo
2018-12-14 20:19       ` [tip:perf/core] " tip-bot for Ravi Bangoria
2018-12-18 13:46       ` tip-bot for Ravi Bangoria
2018-11-15 13:55 ` [PATCH 1/2] perf stat: Use perf_evsel__is_clocki() " Jiri Olsa
2018-11-15 19:22   ` Arnaldo Carvalho de Melo
2018-11-22  7:13 ` [tip:perf/core] " tip-bot for Ravi Bangoria

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=20181115141745.GJ9600@krava \
    --to=jolsa@redhat.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=anton@samba.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@kernel.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=tmricht@linux.vnet.ibm.com \
    --cc=yao.jin@linux.intel.com \
    --cc=yuzhoujian@didichuxing.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.