[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20210212210734.GK1398414@kernel.org>
Date: Fri, 12 Feb 2021 18:07:34 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Nicholas Fraser <nfraser@...eweavers.com>
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...hat.com>,
Namhyung Kim <namhyung@...nel.org>,
Ian Rogers <irogers@...gle.com>,
"Frank Ch. Eigler" <fche@...hat.com>,
Song Liu <songliubraving@...com>,
Adrian Hunter <adrian.hunter@...el.com>,
Kim Phillips <kim.phillips@....com>,
Tommi Rantala <tommi.t.rantala@...ia.com>,
Remi Bernon <rbernon@...eweavers.com>,
linux-kernel@...r.kernel.org,
Ulrich Czekalla <uczekalla@...eweavers.com>,
Huw Davies <huw@...eweavers.com>
Subject: Re: [PATCH 3/4] perf archive: Fix filtering of empty build-ids
Em Fri, Feb 12, 2021 at 01:49:36PM -0500, Nicholas Fraser escreveu:
> The current version of "perf buildid-list" prints missing build-ids as
> blank even when loading perf.data files generated from older versions of
> perf. I've tested with a few older versions.
>
> Since perf-archive is an external script that calls back into perf, it
> could in theory find a different older version that still returns zeroes.
> We could make it look for a matching perf, e.g. "$(dirname "$0")/perf".
> Unfortunately that won't work in general because at least on my system
> perf-archive is installed to a different path than perf.
It shouldn't try to find a "matching perf" as the userspace perf is not
in lockstep with the kernel perf subsystem :-)
If a current 'perf archive' is called on some perf.data file, it should
know that a zero-filled or a blank filled build-id means the same and
act accordingly.
- Arnaldo
> Nick
>
>
> On 2021-02-12 7:29 a.m., Arnaldo Carvalho de Melo wrote:
> > Em Wed, Feb 10, 2021 at 02:17:49PM -0500, Nicholas Fraser escreveu:
> >> A non-existent build-id used to be treated as all-zero SHA-1 hash.
> >> Build-ids are now variable width. A non-existent build-id is an empty
> >> string and "perf buildid-list" pads this with spaces.
> >>
> >> This fixes "perf-archive" to skip missing build-ids by skipping lines
> >> that start with a padding space rather than with zeroes.
> >>
> >> Signed-off-by: Nicholas Fraser <nfraser@...eweavers.com>
> >> ---
> >> tools/perf/perf-archive.sh | 3 +--
> >> 1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/tools/perf/perf-archive.sh b/tools/perf/perf-archive.sh
> >> index 0cfb3e2cefef..133f0eddbcc4 100644
> >> --- a/tools/perf/perf-archive.sh
> >> +++ b/tools/perf/perf-archive.sh
> >> @@ -20,9 +20,8 @@ else
> >> fi
> >>
> >> BUILDIDS=$(mktemp /tmp/perf-archive-buildids.XXXXXX)
> >> -NOBUILDID=0000000000000000000000000000000000000000
> >>
> >> -perf buildid-list -i $PERF_DATA --with-hits | grep -v "^$NOBUILDID " > $BUILDIDS
> >> +perf buildid-list -i $PERF_DATA --with-hits | grep -v "^ " > $BUILDIDS
> >> if [ ! -s $BUILDIDS ] ; then
> >> echo "perf archive: no build-ids found"
> >> rm $BUILDIDS || true
> >
> > What should we do when using older files? We have to support both cases.
> >
> > - Arnaldo
> >
--
- Arnaldo
Powered by blists - more mailing lists