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: 21+ 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 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 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.