Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp131974pxu; Tue, 13 Oct 2020 19:11:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyydJx7jcYQjpTBjjFL+AEJ63RtEcKS1iOET7G0n+wcT5z1sPmNAGVMGJ9HzD4LQahgPyWE X-Received: by 2002:a05:6402:3191:: with SMTP id di17mr2693091edb.376.1602641479276; Tue, 13 Oct 2020 19:11:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602641479; cv=none; d=google.com; s=arc-20160816; b=yIR7Dsq+lv1Yqk3Fewp+Y/Pd1m92DfBu3BhaYUpZWiQV3P/8hLAJBTMiMVC3m3ahEv fVOAwhZElrgHmqslTnhtE5dHlvYUCW3nJFKGnfSUXyCGXAg2Dmy6su1ZNJHmEHF+9Zdq xTeyXWEFZIbFuEiUh5pN2ZJ3Tnu7UcWJmadVdVot6FdLNhQs5BQPByVUUiqXedgZ/55L MuTtWiRv75jCOlm5NyUcqi67syeSyGE4e867A6gn3fMlEZGS6Fb9mIejNn5M1wDbDRHQ GpBafDs7A5odMzS02BR4j3deHEj7WUw+XVDCqAJrxwXXAGNelwfTviLVJ/nflbrysRnX DpJA== 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=gfxpVR8AqM9CzVL/v9zkAZ9Qb9PIcr1LS++IMvRs+Yc=; b=XFJpO78rhe1n8DcHwPUbEx2YrZI6dVaBsBCsLqVg0MtOqVAu76g2vfhc8HrkbjH7kF ovHPu12d5+xG5tGtRtZ3H5fc8IT2vWPBey6qM1EO6CsEXbgRsCa5WY+6+t4rzepsSfNq gN2DZXm6YQAbSq4NdMtnMilFxtNGVNr3mc1wnKmV6D6gskYr6DJA7Hro9TE/3/kBqQxg vA+B16ZAccfEIMBgXWQFyQRSAwKhIWM6GR8BGvgo3dMWxPgGx1EfKeUmY71xkrskG5OA PSumL8+Ci2W0L3V8eGVCBLSS1KzR1IDUz26GNweCcOW9Zlo0ypIgTU1KzXf5O976Wa7R lAnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Yj4YHpo+; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c11si1381102edj.596.2020.10.13.19.10.31; Tue, 13 Oct 2020 19:11:19 -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=@kernel.org header.s=default header.b=Yj4YHpo+; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731669AbgJMQNo (ORCPT + 99 others); Tue, 13 Oct 2020 12:13:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:47726 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731655AbgJMQNn (ORCPT ); Tue, 13 Oct 2020 12:13:43 -0400 Received: from quaco.ghostprotocols.net (unknown [179.97.37.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CF37425243; Tue, 13 Oct 2020 16:13:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602605623; bh=RTGij8Y6IuET2q+ILAg6hbp7K43QVaCxkIdiWh+r7WU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Yj4YHpo+7n+t91PedS0EInA6/OnwFBjaXqGjEZNrO4iDgvAymG8CqDc3SaX1EzdM4 ThHTpaf8BF8o6PLVDSNQ9ufIywT/RX+XWj8LsAXhJkzUWcQ3Vp3+5pI3iJk/cVLwmc oAsgkr8dS8nY9RSiHagqsF3ChY3KKbvMBtjBITgk= Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id DBF0A4047F; Tue, 13 Oct 2020 13:13:40 -0300 (-03) Date: Tue, 13 Oct 2020 13:13:40 -0300 From: Arnaldo Carvalho de Melo To: Jiri Olsa Cc: lkml , Peter Zijlstra , Ingo Molnar , Mark Rutland , Namhyung Kim , Alexander Shishkin , Michael Petlan , Ian Rogers , Stephane Eranian Subject: Re: [PATCH 1/9] perf tools: Add build id shell test Message-ID: <20201013161340.GH1063281@kernel.org> References: <20200930171512.3986425-1-jolsa@kernel.org> <20200930171512.3986425-2-jolsa@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200930171512.3986425-2-jolsa@kernel.org> X-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Wed, Sep 30, 2020 at 07:15:04PM +0200, Jiri Olsa escreveu: > Adding test for build id cache that adds binary > with sha1 and md5 build ids and verifies it's > added properly. > > The test updates build id cache with perf record > and perf buildid-cache -a. [root@five ~]# perf test "build id" 82: build id cache operations : Skip [root@five ~]# set -o vi [root@five ~]# perf test -v "build id" 82: build id cache operations : --- start --- test child forked, pid 88384 failed: no test binaries test child finished with -2 ---- end ---- build id cache operations: Skip [root@five ~]# Also the other patches clashed with Namhyung's patch series, can you please check? I've just pushed what I have to acme/perf/core - Arnaldo > Signed-off-by: Jiri Olsa > --- > tools/perf/Makefile.perf | 14 +++++ > tools/perf/tests/shell/buildid.sh | 90 +++++++++++++++++++++++++++++++ > 2 files changed, 104 insertions(+) > create mode 100755 tools/perf/tests/shell/buildid.sh > > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf > index 920d8afb9238..b2aeefa64e92 100644 > --- a/tools/perf/Makefile.perf > +++ b/tools/perf/Makefile.perf > @@ -126,6 +126,8 @@ include ../scripts/utilities.mak > # > # Define NO_LIBDEBUGINFOD if you do not want support debuginfod > # > +# Define NO_BUILDID_EX if you do not want buildid-ex-* binaries > +# > > # As per kernel Makefile, avoid funny character set dependencies > unexport LC_ALL > @@ -349,6 +351,11 @@ ifndef NO_PERF_READ_VDSOX32 > PROGRAMS += $(OUTPUT)perf-read-vdsox32 > endif > > +ifndef NO_BUILDID_EX > +PROGRAMS += $(OUTPUT)buildid-ex-sha1 > +PROGRAMS += $(OUTPUT)buildid-ex-md5 > +endif > + > LIBJVMTI = libperf-jvmti.so > > ifndef NO_JVMTI > @@ -756,6 +763,13 @@ $(OUTPUT)perf-read-vdsox32: perf-read-vdso.c util/find-map.c > $(QUIET_CC)$(CC) -mx32 $(filter -static,$(LDFLAGS)) -Wall -Werror -o $@ perf-read-vdso.c > endif > > +ifndef NO_BUILDID_EX > +$(OUTPUT)buildid-ex-sha1: > + $(QUIET_LINK)echo 'int main(void) { return 0; }' | $(CC) -Wl,--build-id=sha1 -o $@ -x c - > +$(OUTPUT)buildid-ex-md5: > + $(QUIET_LINK)echo 'int main(void) { return 0; }' | $(CC) -Wl,--build-id=md5 -o $@ -x c - > +endif > + > ifndef NO_JVMTI > LIBJVMTI_IN := $(OUTPUT)jvmti/jvmti-in.o > > diff --git a/tools/perf/tests/shell/buildid.sh b/tools/perf/tests/shell/buildid.sh > new file mode 100755 > index 000000000000..57fcd28bc4bd > --- /dev/null > +++ b/tools/perf/tests/shell/buildid.sh > @@ -0,0 +1,90 @@ > +#!/bin/sh > +# build id cache operations > +# SPDX-License-Identifier: GPL-2.0 > + > +# skip if there are no test binaries > +if [ ! -x buildid-ex-sha1 -a ! -x buildid-ex-md5 ]; then > + echo "failed: no test binaries" > + exit 2 > +fi > + > +# skip if there's no readelf > +if [ ! -x `which readelf` ]; then > + echo "failed: no readelf, install binutils" > + exit 2 > +fi > + > +check() > +{ > + id=`readelf -n $1 2>/dev/null | grep 'Build ID' | awk '{print $3}'` > + > + echo "build id: ${id}" > + > + link=${build_id_dir}/.build-id/${id:0:2}/${id:2} > + echo "link: ${link}" > + > + if [ ! -h $link ]; then > + echo "failed: link ${link} does not exist" > + exit 1 > + fi > + > + file=${build_id_dir}/.build-id/${id:0:2}/`readlink ${link}`/elf > + echo "file: ${file}" > + > + if [ ! -x $file ]; then > + echo "failed: file ${file} does not exist" > + exit 1 > + fi > + > + diff ${file} ${1} > + if [ $? -ne 0 ]; then > + echo "failed: ${file} do not match" > + exit 1 > + fi > + > + echo "OK for ${1}" > +} > + > +test_add() > +{ > + build_id_dir=$(mktemp -d /tmp/perf.debug.XXX) > + perf="perf --buildid-dir ${build_id_dir}" > + > + ${perf} buildid-cache -v -a ${1} > + if [ $? -ne 0 ]; then > + echo "failed: add ${1} to build id cache" > + exit 1 > + fi > + > + check ${1} > + > + rm -rf ${build_id_dir} > +} > + > +test_record() > +{ > + data=$(mktemp /tmp/perf.data.XXX) > + build_id_dir=$(mktemp -d /tmp/perf.debug.XXX) > + perf="perf --buildid-dir ${build_id_dir}" > + > + ${perf} record --buildid-all -o ${data} ${1} > + if [ $? -ne 0 ]; then > + echo "failed: record ${1}" > + exit 1 > + fi > + > + check ${1} > + > + rm -rf ${build_id_dir} > + rm -rf ${data} > +} > + > +# add binaries manual via perf buildid-cache -a > +test_add buildid-ex-sha1 > +test_add buildid-ex-md5 > + > +# add binaries via perf record post processing > +test_record buildid-ex-sha1 > +test_record buildid-ex-md5 > + > +exit ${err} > -- > 2.26.2 > -- - Arnaldo