From nobody Wed Dec 31 00:37:15 2025 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 EDF97C4332F for ; Tue, 14 Nov 2023 05:14:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232214AbjKNFOp (ORCPT ); Tue, 14 Nov 2023 00:14:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232231AbjKNFOh (ORCPT ); Tue, 14 Nov 2023 00:14:37 -0500 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 836AAD4E; Mon, 13 Nov 2023 21:14:22 -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 A0A671596; Mon, 13 Nov 2023 21:15:07 -0800 (PST) Received: from a077893.blr.arm.com (a077893.blr.arm.com [10.162.41.8]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C079E3F7B4; Mon, 13 Nov 2023 21:14:16 -0800 (PST) From: Anshuman Khandual To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, will@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com Cc: Anshuman Khandual , Mark Brown , James Clark , Rob Herring , Marc Zyngier , Suzuki Poulose , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , linux-perf-users@vger.kernel.org Subject: [V14 6/8] perf: test: Speed up running brstack test on an Arm model Date: Tue, 14 Nov 2023 10:43:27 +0530 Message-Id: <20231114051329.327572-7-anshuman.khandual@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231114051329.327572-1-anshuman.khandual@arm.com> References: <20231114051329.327572-1-anshuman.khandual@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: James Clark The test runs quite slowly in the model, so replace "xargs -n1" with "tr ' ' '\n'" which does the same thing but in single digit minutes instead of double digit minutes. Also reduce the number of loops in the test application. Unfortunately this causes intermittent failures on x86, presumably because the sampling interval is too big to pickup any loops, so keep it the same there. Cc: Mark Rutland Cc: Arnaldo Carvalho de Melo Cc: linux-perf-users@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: James Clark Signed-off-by: Anshuman Khandual --- Changes in V14: - This is a new patch in the series tools/perf/tests/shell/test_brstack.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/tools/perf/tests/shell/test_brstack.sh b/tools/perf/tests/shel= l/test_brstack.sh index 09908d71c994..283c9a902bbf 100755 --- a/tools/perf/tests/shell/test_brstack.sh +++ b/tools/perf/tests/shell/test_brstack.sh @@ -12,7 +12,6 @@ if ! perf record -o- --no-buildid --branch-filter any,sav= e_type,u -- true > /dev fi =20 TMPDIR=3D$(mktemp -d /tmp/__perf_test.program.XXXXX) -TESTPROG=3D"perf test -w brstack" =20 cleanup() { rm -rf $TMPDIR @@ -20,11 +19,21 @@ cleanup() { =20 trap cleanup EXIT TERM INT =20 +is_arm64() { + uname -m | grep -q aarch64 +} + +if is_arm64; then + TESTPROG=3D"perf test -w brstack 5000" +else + TESTPROG=3D"perf test -w brstack" +fi + test_user_branches() { echo "Testing user branch stack sampling" =20 perf record -o $TMPDIR/perf.data --branch-filter any,save_type,u -- ${TES= TPROG} > /dev/null 2>&1 - perf script -i $TMPDIR/perf.data --fields brstacksym | xargs -n1 > $TMPDI= R/perf.script + perf script -i $TMPDIR/perf.data --fields brstacksym | tr ' ' '\n' > $TMP= DIR/perf.script =20 # example of branch entries: # brstack_foo+0x14/brstack_bar+0x40/P/-/-/0/CALL @@ -53,7 +62,7 @@ test_filter() { echo "Testing branch stack filtering permutation ($test_filter_filter,$te= st_filter_expect)" =20 perf record -o $TMPDIR/perf.data --branch-filter $test_filter_filter,save= _type,u -- ${TESTPROG} > /dev/null 2>&1 - perf script -i $TMPDIR/perf.data --fields brstack | xargs -n1 > $TMPDIR/p= erf.script + perf script -i $TMPDIR/perf.data --fields brstack | tr ' ' '\n' > $TMPDIR= /perf.script =20 # fail if we find any branch type that doesn't match any of the expected = ones # also consider UNKNOWN branch types (-) --=20 2.25.1