lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 12 Feb 2021 13:49:36 -0500
From:   Nicholas Fraser <nfraser@...eweavers.com>
To:     Arnaldo Carvalho de Melo <acme@...nel.org>
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

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.

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
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ