Messages in this thread | | | Date | Fri, 12 Feb 2021 18:07:34 -0300 | From | Arnaldo Carvalho de Melo <> | 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@codeweavers.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
| |