Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2436917pxk; Mon, 14 Sep 2020 13:21:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwuAWbYSFB5Duq1ZbYEvV2VjY3Wpandc7yS0L5vWpVd26uae6ky0bb8tImzVxOHoFfGJBXO X-Received: by 2002:a17:906:f8d1:: with SMTP id lh17mr15992417ejb.409.1600114874771; Mon, 14 Sep 2020 13:21:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600114874; cv=none; d=google.com; s=arc-20160816; b=S8EO0lSXJWeyfGE5m4gr5cW7tNkUd4ALilV5WRTefzV/zo5rBoL4XuZRxCa+l145AM hNmJp0VlTrhrnax78XxylNRzwZyPzD9RrS8GunZVU+txzWnavbYIPqhxIxjaqQTF1RRl tD7NEu3qPgLAQM4jGOcgpfNt+TWOufTA5hFEp9+Y80nB0Qhe16wATPGekjYJ8EWms9Zr kp118+yNxBY0lSPxMemmp7o2q47H6I2BbiYjyehEfQiWLcRhNLH/hH4Pl+bTVdVvahg/ 0rt9WWkGJH8VJRzEmcJxK3gKmfYucRmQnz9wt5Pu9YMvN1lDiiaH/6DDg06sXfFPbIKH U9aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=pHT1Z4hLElRVegkqH/IuuR9ZgXGcgBq0pVel59f+huw=; b=xJQmPz0b0O4SpF6RN/12xRGqCCUcnU6FKh/0mBDj+UW5vauTNHvljEaKiM72hpY4nR zC//qnt/tPtiRY6ltH4XbR1Wfa9QoKLflCchy3fWF53ijk4ngRzud+uNqU8VrtLH/bLU SwkMqG64fsgVDfa3yNYY6V/wNhDOSKPSoEkQKbGS0C/Mt5a82uCOCy9EMrMsBvwajRvs CzuirEpWFueUooSRY40RSRLDegyzyPIRkyPdxWe7NpFSoj3E0tCUmTEs3LEbQEuNuaNN uorOb15GWcvUV97Q5xO5Ov76PHmGKsuy6p67FlEQmyYQQ1qwr+bac8V9SkqoEHQk5f0R cGiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=VDApiRL7; 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 v2si7521519ejy.65.2020.09.14.13.20.52; Mon, 14 Sep 2020 13:21:14 -0700 (PDT) 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=VDApiRL7; 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 S1726180AbgINUSz (ORCPT + 99 others); Mon, 14 Sep 2020 16:18:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39562 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726174AbgINUSP (ORCPT ); Mon, 14 Sep 2020 16:18:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600114693; 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=pHT1Z4hLElRVegkqH/IuuR9ZgXGcgBq0pVel59f+huw=; b=VDApiRL7kXkwXStGT5bz0N35ggGXKuFGwCe8Om673tznxdjTvoBPAHcWKSaV3S6fkj6R0o PfdV5LLHQvXLkLHdGlpwgmcvt9dJNV0JzUcBZSXrj/CKtOTfPNFjslx95y7zztfvt1YVOL lz1uLNtWFg/kKE0MRdCgvwnPlzdni2c= 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-47-RhEZmPa6OdiqzLDKu8tVZQ-1; Mon, 14 Sep 2020 16:18:11 -0400 X-MC-Unique: RhEZmPa6OdiqzLDKu8tVZQ-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DFA42100748B; Mon, 14 Sep 2020 20:18:08 +0000 (UTC) Received: from krava (unknown [10.40.192.180]) by smtp.corp.redhat.com (Postfix) with SMTP id 52FE875120; Mon, 14 Sep 2020 20:18:04 +0000 (UTC) Date: Mon, 14 Sep 2020 22:18:03 +0200 From: Jiri Olsa To: Namhyung Kim Cc: Jiri Olsa , Arnaldo Carvalho de Melo , lkml , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Michael Petlan , Song Liu , "Frank Ch. Eigler" , Ian Rogers , Stephane Eranian , Alexey Budankov , Andi Kleen , Adrian Hunter Subject: Re: [PATCH 07/26] perf tools: Add check for existing link in buildid dir Message-ID: <20200914201803.GT1714160@krava> References: <20200913210313.1985612-1-jolsa@kernel.org> <20200913210313.1985612-8-jolsa@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Sep 14, 2020 at 02:54:36PM +0900, Namhyung Kim wrote: > On Mon, Sep 14, 2020 at 6:05 AM Jiri Olsa wrote: > > > > When adding new build id link we fail if the link is already > > there. Adding check for existing link and warn/replace the > > link with new target. > > > > Signed-off-by: Jiri Olsa > > --- > > tools/perf/util/build-id.c | 20 +++++++++++++++++++- > > 1 file changed, 19 insertions(+), 1 deletion(-) > > > > diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c > > index bdee4e08e60d..ecdc167aa1a0 100644 > > --- a/tools/perf/util/build-id.c > > +++ b/tools/perf/util/build-id.c > > @@ -751,8 +751,26 @@ int build_id_cache__add_s(const char *sbuild_id, const char *name, > > tmp = dir_name + strlen(buildid_dir) - 5; > > memcpy(tmp, "../..", 5); > > > > - if (symlink(tmp, linkname) == 0) > > + if (symlink(tmp, linkname) == 0) { > > err = 0; > > + } else if (errno == EEXIST) { > > + char path[PATH_MAX]; > > + > > + if (readlink(linkname, path, sizeof(path)) == -1) { > > + pr_err("Cant read link: %s\n", linkname); > > typo ok > > > + goto out_free; > > + } > > + if (strcmp(tmp, path)) { > > + pr_err("Inconsistent .debug record, updating [%s]\n", > > + linkname); > > But isn't it ok to copy a binary to another location? > There can be multiple binaries with the same build-id.. ah true.. perhaps just debug message would be good in here previou code failed in this case, but I think we do not check on return value in upper layer thanks, jirka