From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Thomas-Mich Richter <tmricht@linux.ibm.com>
Cc: mpe@ellerman.id.au, linux-kernel@vger.kernel.org,
linux-perf-users@vger.kernel.org, brueckner@linux.vnet.ibm.com,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com
Subject: Re: [PATCH 2/3] perf report: Add raw report support for s390 auxiliary trace
Date: Wed, 8 Aug 2018 13:08:43 -0300 [thread overview]
Message-ID: <20180808160843.GC9543@kernel.org> (raw)
In-Reply-To: <20180808155921.GB9543@kernel.org>
Em Wed, Aug 08, 2018 at 12:59:21PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, Aug 08, 2018 at 12:53:28PM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Wed, Aug 08, 2018 at 08:39:58AM +0200, Thomas-Mich Richter escreveu:
> > > On 08/08/2018 05:37 AM, mpe@ellerman.id.au wrote:
> > > > Thomas Richter <tmricht@linux.ibm.com> writes:
> > > >> Add support for s390 auxiliary trace support.
> > > >> Use 'perf record -e rbd000' to create the perf.data file.
> > > >> The event also has the symbolic name SF_CYCLES_BASIC_DIAG,
> > > >> using 'perf record -e SF_CYCLES_BASIC_DIAG' is equivalent.
> > > > ...
> > > >>
> > > >> Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
> > > >> Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
> > > >> ---
> > > >> tools/perf/util/s390-cpumsf-kernel.h | 71 ++++++++
> > > >> tools/perf/util/s390-cpumsf.c | 244 ++++++++++++++++++++++++++-
> > > >> 2 files changed, 314 insertions(+), 1 deletion(-)
> > > >> create mode 100644 tools/perf/util/s390-cpumsf-kernel.h
> > > >
> > > >
> > > > I'm seeing a build break on ppc64le which seems to be caused by this
> > > > commit (I haven't bisected):
> > > >
> > > > util/s390-cpumsf.c: In function ‘trailer_timestamp’:
> > > > util/s390-cpumsf.c:222:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
> > > > return *((unsigned long long *) &te->timestamp[te->t]);
> > > > ^
> > > >
> > > >
> > > > And on powerpc big endian:
> > > > In file included from util/cpumap.h:10:0,
> > > > from util/s390-cpumsf.c:150:
> > > > util/s390-cpumsf.c: In function ‘s390_cpumsf_basic_show’:
> > > > util/s390-cpumsf.c:187:10: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘size_t {aka unsigned int}’ [-Werror=format=]
> > > > pr_err("Invalid AUX trace basic entry [%#08lx]\n", pos);
> > > > ^
> > > >
> > > > cheers
> > > >
> > >
> > > Can you please try this patch. Thanks a lot
> >
> > Ok, this was making the build fail as well on some containers here:
>
> Ok, failed in another container:
>
> 11 centos:6 : gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
>
> CC /tmp/build/perf/tests/sample-parsing.o
> cc1: warnings being treated as errors
> In file included from util/s390-cpumsf.c:161:
> util/s390-cpumsf-kernel.h:16: error: packed attribute is unnecessary for 'def'
> util/s390-cpumsf-kernel.h:25: error: packed attribute is unnecessary for 'CL'
> util/s390-cpumsf-kernel.h:28: error: packed attribute is unnecessary for 'ia'
> util/s390-cpumsf-kernel.h:29: error: packed attribute is unnecessary for 'gpp'
> util/s390-cpumsf-kernel.h:30: error: packed attribute is unnecessary for 'hpp'
> util/s390-cpumsf-kernel.h:34: error: packed attribute is unnecessary for 'def'
> mv: cannot stat `/tmp/build/perf/util/.s390-cpumsf.o.tmp': No such file or directory
> make[4]: *** [/tmp/build/perf/util/s390-cpumsf.o] Error 1
So, this is how it shows using that __packed you have:
[acme@seventh perf]$ pahole -C hws_basic_entry ~/bin/perf
struct hws_basic_entry {
unsigned int def:16; /* 0:16 4 */
unsigned int R:4; /* 0:12 4 */
unsigned int U:4; /* 0: 8 4 */
unsigned int z:2; /* 0: 6 4 */
unsigned int T:1; /* 0: 5 4 */
unsigned int W:1; /* 0: 4 4 */
unsigned int P:1; /* 0: 3 4 */
unsigned int AS:2; /* 0: 1 4 */
unsigned int I:1; /* 0: 0 4 */
unsigned int CL:2; /* 4:30 4 */
unsigned int prim_asn:16; /* 4: 0 4 */
/* XXX 14 bits hole, try to pack */
long long unsigned int ia; /* 8 8 */
long long unsigned int gpp; /* 16 8 */
long long unsigned int hpp; /* 24 8 */
/* size: 32, cachelines: 1, members: 14 */
/* bit holes: 1, sum bit holes: 14 bits */
/* last cacheline: 32 bytes */
};
[acme@seventh perf]$
And:
[acme@seventh perf]$ pahole -C hws_diag_entry ~/bin/perf
struct hws_diag_entry {
unsigned int def:16; /* 0:16 4 */
unsigned int R:15; /* 0: 1 4 */
unsigned int I:1; /* 0: 0 4 */
u8 data[0]; /* 4 0 */
/* size: 4, cachelines: 1, members: 4 */
/* last cacheline: 4 bytes */
};
[acme@seventh perf]$
Now, if we apply this patch:
[acme@seventh perf]$ pahole -C hws_basic_entry ~/bin/perf
struct hws_basic_entry {
unsigned int def:16; /* 0:16 4 */
unsigned int R:4; /* 0:12 4 */
unsigned int U:4; /* 0: 8 4 */
unsigned int z:2; /* 0: 6 4 */
unsigned int T:1; /* 0: 5 4 */
unsigned int W:1; /* 0: 4 4 */
unsigned int P:1; /* 0: 3 4 */
unsigned int AS:2; /* 0: 1 4 */
unsigned int I:1; /* 0: 0 4 */
unsigned int CL:2; /* 4:30 4 */
unsigned int prim_asn:16; /* 4: 0 4 */
/* XXX 14 bits hole, try to pack */
long long unsigned int ia; /* 8 8 */
long long unsigned int gpp; /* 16 8 */
long long unsigned int hpp; /* 24 8 */
/* size: 32, cachelines: 1, members: 14 */
/* bit holes: 1, sum bit holes: 14 bits */
/* last cacheline: 32 bytes */
};
[acme@seventh perf]$
See, no need for packing, that old gcc version is right, and the other
struct:
[acme@seventh perf]$ pahole -C hws_diag_entry ~/bin/perf
struct hws_diag_entry {
unsigned int def:16; /* 0:16 4 */
unsigned int R:15; /* 0: 1 4 */
unsigned int I:1; /* 0: 0 4 */
u8 data[0]; /* 4 0 */
/* size: 4, cachelines: 1, members: 4 */
/* last cacheline: 4 bytes */
};
[acme@seventh perf]$
No need for __packed.
I'm removing that to avoid having this failling in compilers that have
such a warning, since we default to Werror.
Holler if there is something I'missing :-)
- Arnaldo
next prev parent reply other threads:[~2018-08-08 16:08 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-02 7:46 [PATCH 0/3] perf report: Add s390 auxiliary trace support Thomas Richter
2018-08-02 7:46 ` [PATCH 1/3] perf auxtrace: Support for perf report -D for s390 Thomas Richter
2018-08-02 12:49 ` Arnaldo Carvalho de Melo
2018-08-03 10:07 ` Hendrik Brueckner
2018-08-03 13:32 ` Arnaldo Carvalho de Melo
2018-08-18 11:22 ` [tip:perf/urgent] " tip-bot for Thomas Richter
2018-08-02 7:46 ` [PATCH 2/3] perf report: Add raw report support for s390 auxiliary trace Thomas Richter
2018-08-08 3:37 ` mpe
2018-08-08 6:39 ` Thomas-Mich Richter
2018-08-08 15:53 ` Arnaldo Carvalho de Melo
2018-08-08 15:59 ` Arnaldo Carvalho de Melo
2018-08-08 16:08 ` Arnaldo Carvalho de Melo [this message]
2018-08-08 16:14 ` Arnaldo Carvalho de Melo
2018-08-08 16:42 ` Arnaldo Carvalho de Melo
2018-08-09 4:35 ` Thomas-Mich Richter
2018-08-09 15:14 ` Arnaldo Carvalho de Melo
2018-08-10 5:41 ` Michael Ellerman
2018-08-18 11:23 ` [tip:perf/urgent] " tip-bot for Thomas Richter
2018-08-02 7:46 ` [PATCH 3/3] perf report: Add GUI " Thomas Richter
2018-08-18 11:23 ` [tip:perf/urgent] " tip-bot for Thomas Richter
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=20180808160843.GC9543@kernel.org \
--to=acme@kernel.org \
--cc=brueckner@linux.vnet.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mpe@ellerman.id.au \
--cc=schwidefsky@de.ibm.com \
--cc=tmricht@linux.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).