From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Michael Petlan <mpetlan@redhat.com>
Cc: Andres Freund <andres@anarazel.de>, Jiri Olsa <jolsa@redhat.com>,
linux-kernel@vger.kernel.org, Jiri Olsa <jolsa@kernel.org>,
Andi Kleen <ak@linux.intel.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
stable@vger.kernel.org
Subject: Re: [PATCH] perf c2c: Fix sorting.
Date: Thu, 9 Jan 2020 10:18:34 -0300 [thread overview]
Message-ID: <20200109131834.GA4404@redhat.com> (raw)
In-Reply-To: <alpine.LRH.2.20.2001091055430.4075@Diego>
Em Thu, Jan 09, 2020 at 10:58:43AM +0100, Michael Petlan escreveu:
> On Wed, 8 Jan 2020, Andres Freund wrote:
> > Commit 722ddfde366f ("perf tools: Fix time sorting") changed -
> > correctly so - hist_entry__sort to return int64. Unfortunately several
> > of the builtin-c2c.c comparison routines only happened to work due the
> > cast caused by the wrong return type.
> >
> > This causes meaningless ordering of both the cacheline list, and the
> > cacheline details page. E.g a simple
> > perf c2c record -a sleep 3
> > perf c2c report
> > will result in cacheline table like
> > =================================================
> > Shared Data Cache Line Table
> > =================================================
> > #
> > # ----------- Cacheline ---------- Total Tot ----- LLC Load Hitm ----- ---- Store Reference ---- --- Load Dram ---- LLC Total ----- Core Load Hit ----- -- LLC Load Hit --
> > # Index Address Node PA cnt records Hitm Total Lcl Rmt Total L1Hit L1Miss Lcl Rmt Ld Miss Loads FB L1 L2 Llc Rmt
> > # ..... .................. .... ...... ....... ....... ....... ....... ....... ....... ....... ....... ........ ........ ....... ....... ....... ....... ....... ........ ........
> > #
> > 0 0x7f0d27ffba00 N/A 0 52 0.12% 13 6 7 12 12 0 0 7 14 40 4 16 0 0 0
> > 1 0x7f0d27ff61c0 N/A 0 6353 14.04% 1475 801 674 779 779 0 0 718 1392 5574 1299 1967 0 115 0
> > 2 0x7f0d26d3ec80 N/A 0 71 0.15% 16 4 12 13 13 0 0 12 24 58 1 20 0 9 0
> > 3 0x7f0d26d3ec00 N/A 0 98 0.22% 23 17 6 19 19 0 0 6 12 79 0 40 0 10 0
> > i.e. with the list not being ordered by Total Hitm.
> >
> > Fixes: 722ddfde366f ("perf tools: Fix time sorting")
> > Signed-off-by: Andres Freund <andres@anarazel.de>
>
> Tested on top of Arnaldo's perf/core branch. After the patch, the rows
> are ordered by Tot Hitm.
>
> Tested-by: Michael Petlan <mpetlan@redhat.com>
Jiri, so you think we should use a different Fixes: cset? Or plain
remove it? I haven't checked it, just trying to figure out if you guys
came up with a conclusion so that I can review/apply.
- Arnaldo
> > Cc: Jiri Olsa <jolsa@kernel.org>
> > Cc: Andi Kleen <ak@linux.intel.com>
> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
> > Cc: Michael Petlan <mpetlan@redhat.com>
> > Cc: Namhyung Kim <namhyung@kernel.org>
> > Cc: Peter Zijlstra <peterz@infradead.org>
> > Cc: stable@vger.kernel.org # v3.16+
> > ---
> > tools/perf/builtin-c2c.c | 10 ++++++----
> > 1 file changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c
> > index e69f44941aad..f2e9d2b1b913 100644
> > --- a/tools/perf/builtin-c2c.c
> > +++ b/tools/perf/builtin-c2c.c
> > @@ -595,8 +595,8 @@ tot_hitm_cmp(struct perf_hpp_fmt *fmt __maybe_unused,
> > {
> > struct c2c_hist_entry *c2c_left;
> > struct c2c_hist_entry *c2c_right;
> > - unsigned int tot_hitm_left;
> > - unsigned int tot_hitm_right;
> > + uint64_t tot_hitm_left;
> > + uint64_t tot_hitm_right;
> >
> > c2c_left = container_of(left, struct c2c_hist_entry, he);
> > c2c_right = container_of(right, struct c2c_hist_entry, he);
> > @@ -629,7 +629,8 @@ __f ## _cmp(struct perf_hpp_fmt *fmt __maybe_unused, \
> > \
> > c2c_left = container_of(left, struct c2c_hist_entry, he); \
> > c2c_right = container_of(right, struct c2c_hist_entry, he); \
> > - return c2c_left->stats.__f - c2c_right->stats.__f; \
> > + return (uint64_t) c2c_left->stats.__f - \
> > + (uint64_t) c2c_right->stats.__f; \
> > }
> >
> > #define STAT_FN(__f) \
> > @@ -682,7 +683,8 @@ ld_llcmiss_cmp(struct perf_hpp_fmt *fmt __maybe_unused,
> > c2c_left = container_of(left, struct c2c_hist_entry, he);
> > c2c_right = container_of(right, struct c2c_hist_entry, he);
> >
> > - return llc_miss(&c2c_left->stats) - llc_miss(&c2c_right->stats);
> > + return (uint64_t) llc_miss(&c2c_left->stats) -
> > + (uint64_t) llc_miss(&c2c_right->stats);
> > }
> >
> > static uint64_t total_records(struct c2c_stats *stats)
> > --
> > 2.25.0.rc1
> >
> >
next prev parent reply other threads:[~2020-01-09 13:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-09 4:30 [PATCH] perf c2c: Fix sorting Andres Freund
2020-01-09 8:48 ` Jiri Olsa
2020-01-09 17:00 ` Andres Freund
2020-01-09 21:46 ` Jiri Olsa
2020-01-14 16:28 ` Arnaldo Carvalho de Melo
2020-01-09 9:58 ` Michael Petlan
2020-01-09 13:18 ` Arnaldo Carvalho de Melo [this message]
2020-01-09 13:22 ` Jiri Olsa
2020-01-20 8:27 ` [tip: perf/core] perf c2c: Fix return type for histogram sorting comparision functions tip-bot2 for Andres Freund
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=20200109131834.GA4404@redhat.com \
--to=acme@redhat.com \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=andres@anarazel.de \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpetlan@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=stable@vger.kernel.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.