Re: [PATCH 0/2] perf jevents: Enable build warnings

From: Arnaldo Carvalho de Melo
Date: Wed Oct 20 2021 - 13:25:49 EST


Em Wed, Oct 20, 2021 at 03:41:01PM +0100, John Garry escreveu:
> On 20/10/2021 15:31, Arnaldo Carvalho de Melo wrote:
> > Em Sat, Oct 16, 2021 at 12:48:25AM +0800, John Garry escreveu:
> > > Currently jevents builds without any complier warning flags enabled. So
> > > use newly-defined HOSTCFLAGS, which comes from EXTRA_WARNINGS. I am not
> > > 100% confident that this is the best way, but sending out for review.
> > >
> > > Baseline is be8ecc57f180 (HEAD, acme/perf/core) perf srcline: Use
> > > long-running addr2line per DSO
> >
> > Thanks, applied.

> I was going to send a v2, with changes according to James Clark's review -
> that was to add -Wall & -Werror, but they caused a problem on your perf/core
> branch as they triggered the warn fixed in commit b94729919db2.

> I suppose the best thing now is to send a patch on top once perf/core
> contains that commit. Let me know otherwise.

You can send a v2, as:

29 8.60 debian:experimental-x-mipsel : FAIL gcc version 11.2.0 (Debian 11.2.0-9)
util/intel-pt.c: In function 'intel_pt_synth_pebs_sample':
util/intel-pt.c:2146:33: error: passing argument 1 of 'find_first_bit' from incompatible pointer type [-Werror=incompatible-pointer-types]
2146 | for_each_set_bit(hw_id, &items->applicable_counters, INTEL_PT_MAX_PEBS) {
/git/perf-5.15.0-rc4/tools/include/linux/bitops.h:37:38: note: in definition of macro 'for_each_set_bit'
37 | for ((bit) = find_first_bit((addr), (size)); \
| ^~~~
In file included from /git/perf-5.15.0-rc4/tools/include/asm-generic/bitops.h:21,
from /git/perf-5.15.0-rc4/tools/include/linux/bitops.h:34,
from /git/perf-5.15.0-rc4/tools/include/linux/bitmap.h:6,
from util/header.h:10,
from util/session.h:7,
from util/intel-pt.c:16:
/git/perf-5.15.0-rc4/tools/include/asm-generic/bitops/find.h:109:51: note: expected 'const long unsigned int *' but argument is of type 'const uint64_t *' {aka 'const long long unsigned int *'}

Adrian, this is on:

commit 803a3c9233990e1adac8ea2421e3759c2d380cf8
Author: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Date: Tue Sep 7 19:39:03 2021 +0300

perf intel-pt: Add support for PERF_RECORD_AUX_OUTPUT_HW_ID

Originally, software only supported redirecting at most one PEBS event to
Intel PT (PEBS-via-PT) because it was not able to differentiate one event
from another. To overcome that, add support for the
PERF_RECORD_AUX_OUTPUT_HW_ID side-band event.

Reviewed-by: Alexander Shishkin <alexander.shishkin@xxxxxxxxxxxxxxx>
Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>


That is still just on tmp.perf/core, so we can fix it, probably its just
making that uint64_t into a unsigned long, will check later if you don't
beat me to it.

- Arnaldo