From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04DACC4332F for ; Mon, 14 Nov 2022 11:16:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236030AbiKNLQL (ORCPT ); Mon, 14 Nov 2022 06:16:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41856 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236706AbiKNLPd (ORCPT ); Mon, 14 Nov 2022 06:15:33 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 6DBADF51; Mon, 14 Nov 2022 03:11:42 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 25F4123A; Mon, 14 Nov 2022 03:11:48 -0800 (PST) Received: from [10.57.70.83] (unknown [10.57.70.83]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 43DE83F73D; Mon, 14 Nov 2022 03:11:39 -0800 (PST) Message-ID: <38c4c93d-c3a5-2649-a57a-3c1ccd2027f3@arm.com> Date: Mon, 14 Nov 2022 11:11:37 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH 02/12] perf test: Replace pipe test workload with noploop Content-Language: en-US To: Namhyung Kim , Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Ian Rogers , Adrian Hunter , linux-perf-users@vger.kernel.org, Leo Yan , German Gomez , Zhengjun Xing , Athira Jajeev References: <20221110181920.84900-1-namhyung@kernel.org> <20221110181920.84900-3-namhyung@kernel.org> From: James Clark In-Reply-To: <20221110181920.84900-3-namhyung@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org On 10/11/2022 18:19, Namhyung Kim wrote: > So that it can get rid of requirement of a compiler. > Also define and use more local symbols to ease future changes. > > $ sudo ./perf test -v pipe > 87: perf pipe recording and injection test : > --- start --- > test child forked, pid 748003 > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.000 MB - ] > 748014 748014 -1 |perf > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.000 MB - ] > 99.83% perf perf [.] noploop > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.000 MB - ] > 99.85% perf perf [.] noploop > [ perf record: Woken up 1 times to write data ] > [ perf record: Captured and wrote 0.160 MB /tmp/perf.data.2XYPdw (4007 samples) ] > 99.83% perf perf [.] noploop > test child finished with 0 > ---- end ---- > perf pipe recording and injection test: Ok > > Signed-off-by: Namhyung Kim Tested-by: James Clark > --- > tools/perf/tests/shell/pipe_test.sh | 55 ++++++----------------------- > 1 file changed, 10 insertions(+), 45 deletions(-) > > diff --git a/tools/perf/tests/shell/pipe_test.sh b/tools/perf/tests/shell/pipe_test.sh > index 1b32b4f28391..8dd115dd35a7 100755 > --- a/tools/perf/tests/shell/pipe_test.sh > +++ b/tools/perf/tests/shell/pipe_test.sh > @@ -2,68 +2,33 @@ > # perf pipe recording and injection test > # SPDX-License-Identifier: GPL-2.0 > > -# skip if there's no compiler > -if ! [ -x "$(command -v cc)" ]; then > - echo "failed: no compiler, install gcc" > - exit 2 > -fi > - > -file=$(mktemp /tmp/test.file.XXXXXX) > data=$(mktemp /tmp/perf.data.XXXXXX) > +prog="perf test -w noploop" > +task="perf" > +sym="noploop" > > -cat < -#include > -#include > -#include > - > -volatile int done; > - > -void sigalrm(int sig) { > - done = 1; > -} > - > -__attribute__((noinline)) void noploop(void) { > - while (!done) > - continue; > -} > - > -int main(int argc, char *argv[]) { > - int sec = 1; > - > - if (argc > 1) > - sec = atoi(argv[1]); > - > - signal(SIGALRM, sigalrm); > - alarm(sec); > - > - noploop(); > - return 0; > -} > -EOF > - > - > -if ! perf record -e task-clock:u -o - ${file} | perf report -i - --task | grep test.file; then > +if ! perf record -e task-clock:u -o - ${prog} | perf report -i - --task | grep ${task}; then > echo "cannot find the test file in the perf report" > exit 1 > fi > > -if ! perf record -e task-clock:u -o - ${file} | perf inject -b | perf report -i - | grep noploop; then > +if ! perf record -e task-clock:u -o - ${prog} | perf inject -b | perf report -i - | grep ${sym}; then > echo "cannot find noploop function in pipe #1" > exit 1 > fi > > -perf record -e task-clock:u -o - ${file} | perf inject -b -o ${data} > -if ! perf report -i ${data} | grep noploop; then > +perf record -e task-clock:u -o - ${prog} | perf inject -b -o ${data} > +if ! perf report -i ${data} | grep ${sym}; then > echo "cannot find noploop function in pipe #2" > exit 1 > fi > > -perf record -e task-clock:u -o ${data} ${file} > -if ! perf inject -b -i ${data} | perf report -i - | grep noploop; then > +perf record -e task-clock:u -o ${data} ${prog} > +if ! perf inject -b -i ${data} | perf report -i - | grep ${sym}; then > echo "cannot find noploop function in pipe #3" > exit 1 > fi > > > -rm -f ${file} ${data} ${data}.old > +rm -f ${data} ${data}.old > exit 0