Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6784582pxb; Wed, 17 Feb 2021 13:24:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJyGAjVWPfHSDEnddcR5vhEfS0CBPpxaqO15fiE4DI1MIdPvasjrZFVytCuP+aTXg0bFd14f X-Received: by 2002:a17:907:1629:: with SMTP id hb41mr837004ejc.197.1613597056940; Wed, 17 Feb 2021 13:24:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613597056; cv=none; d=google.com; s=arc-20160816; b=nXY1oe3+A8/Lbke+EBM6PpriLxmR8KWmh27svYDi00q+9IbFM4eEVicokny3Ld2Ygg mTyrOIyFTX9oGCwmCHT8Qrcq/hDQR0OVF82eOVHnE0GCFggz8Ktpv+Kt4TPe5v69udL7 CBMuxDlrzVtie5hP7/nK+G1AfFE3l7o2MbvQsoDlZvAVUntrtZtjm4sRQcyLewl43RnC bLEaARGx/uuhoDxaAl8EqZPY85LQW2Ey4uyPWAWYZJUGTnzcuv2YftfRpF7VXKqQSl09 dA6Df41QN7CoKF9PYOb9YvqrwpONv64q8XDbCX300Hsd97Yg6DiZmAVMbeiYhQhLeAmr YIYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=X0iUMET3apekVXH6rEyg15tn94AvSxyWLiw3xeT+m28=; b=NwvtH/kbcAm9GcVGwku5XJqP9p/rt9Z6a2aeEsux3HMeS6gl81ChwRs9s1Mf2G4f9e 9nNrbmz3ozEJ447mJ72Vqi2d8J+feCtA8dXoqcfm27QcSoXnoTZGSwNLvHpBQUQPeYKx RqkhgUk9G6QYQqqIrTrPc9X0twMrL5FNP/cUJx5hkB8/SiONkfSN1cg3b52sqz2UG9E/ lh3gMf1tuVmEnL8r/KopD/KxV9ab1XLf395KlgYRDtRj4zxXFIbuDt9Nk+vX6eVNsVC+ ZiLydM3XGXQGXYUlKETWj6cG93dc22ayMsV/kY3x5St2EUWixfR7IJ1rc2hXTJJGlDmb anag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=jNe82RoJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bz20si2539002ejc.351.2021.02.17.13.23.52; Wed, 17 Feb 2021 13:24:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=jNe82RoJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233686AbhBQTzv (ORCPT + 99 others); Wed, 17 Feb 2021 14:55:51 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:54551 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232196AbhBQTzg (ORCPT ); Wed, 17 Feb 2021 14:55:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1613591650; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=X0iUMET3apekVXH6rEyg15tn94AvSxyWLiw3xeT+m28=; b=jNe82RoJoU9qasWI+JcQ7UdaAKyfduIOcZtINkVikjVxlF7GlyHORqBsGVgY3+lEl51m7y i0jQW/0dgzUCTXiGBZ2zYhpcaU7vpcHQKuQmH5dKYnTX5u01DW3uEvAExHvMBxYJUGP6tt Je3Xhb0QMX49REEQNcfZKNAdmQ5RbX8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-553-brBdVrt7NFGsnetgIpHptw-1; Wed, 17 Feb 2021 14:54:06 -0500 X-MC-Unique: brBdVrt7NFGsnetgIpHptw-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 337B479ED6; Wed, 17 Feb 2021 19:54:04 +0000 (UTC) Received: from krava (unknown [10.40.195.160]) by smtp.corp.redhat.com (Postfix) with SMTP id F214018B5E; Wed, 17 Feb 2021 19:54:00 +0000 (UTC) Date: Wed, 17 Feb 2021 20:54:00 +0100 From: Jiri Olsa To: Nicholas Fraser Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Namhyung Kim , Ian Rogers , "Frank Ch. Eigler" , Song Liu , Adrian Hunter , Kim Phillips , Tommi Rantala , Remi Bernon , linux-kernel@vger.kernel.org, Ulrich Czekalla , Huw Davies Subject: Re: [PATCH 1/4] perf buildid-cache: Don't skip 16-byte build-ids Message-ID: References: <597788e4-661d-633f-857c-3de700115d02@codeweavers.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <597788e4-661d-633f-857c-3de700115d02@codeweavers.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Feb 10, 2021 at 02:17:25PM -0500, Nicholas Fraser wrote: > lsdir_bid_tail_filter() ignored any build-id that wasn't exactly 20 > bytes. This worked only for SHA-1 build-ids. The build-id for a PE file > is always a 16-byte GUID and ELF files can also have MD5 or UUID > build-ids. > > This fix changes the filter to allow build-ids between 16 and 20 bytes. > > Signed-off-by: Nicholas Fraser Acked-by: Jiri Olsa thanks, jirka > --- > tools/perf/util/build-id.c | 5 +++-- > tools/perf/util/build-id.h | 4 +++- > 2 files changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c > index 02df36b30ac5..e32e8f2ff3bd 100644 > --- a/tools/perf/util/build-id.c > +++ b/tools/perf/util/build-id.c > @@ -448,7 +448,8 @@ static bool lsdir_bid_tail_filter(const char *name __maybe_unused, > int i = 0; > while (isxdigit(d->d_name[i]) && i < SBUILD_ID_SIZE - 3) > i++; > - return (i == SBUILD_ID_SIZE - 3) && (d->d_name[i] == '\0'); > + return (i >= SBUILD_ID_MIN_SIZE - 3) && (i <= SBUILD_ID_SIZE - 3) && > + (d->d_name[i] == '\0'); > } > > struct strlist *build_id_cache__list_all(bool validonly) > @@ -490,7 +491,7 @@ struct strlist *build_id_cache__list_all(bool validonly) > } > strlist__for_each_entry(nd2, linklist) { > if (snprintf(sbuild_id, SBUILD_ID_SIZE, "%s%s", > - nd->s, nd2->s) != SBUILD_ID_SIZE - 1) > + nd->s, nd2->s) > SBUILD_ID_SIZE - 1) > goto err_out; > if (validonly && !build_id_cache__valid_id(sbuild_id)) > continue; > diff --git a/tools/perf/util/build-id.h b/tools/perf/util/build-id.h > index 02613f4b2c29..c19617151670 100644 > --- a/tools/perf/util/build-id.h > +++ b/tools/perf/util/build-id.h > @@ -2,8 +2,10 @@ > #ifndef PERF_BUILD_ID_H_ > #define PERF_BUILD_ID_H_ 1 > > -#define BUILD_ID_SIZE 20 > +#define BUILD_ID_SIZE 20 /* SHA-1 length in bytes */ > +#define BUILD_ID_MIN_SIZE 16 /* MD5/UUID/GUID length in bytes */ > #define SBUILD_ID_SIZE (BUILD_ID_SIZE * 2 + 1) > +#define SBUILD_ID_MIN_SIZE (BUILD_ID_MIN_SIZE * 2 + 1) > > #include "machine.h" > #include "tool.h" > -- > 2.30.0 >