From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2422A35E1A4 for ; Tue, 9 Jun 2026 14:40:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781016041; cv=none; b=iVqRkhA+DQEISGhJXKe08OTX+2AUGozlqTR5UwZC9baGtBtXje/r2c1F3T4lLkKU3YCh/QEqrg8gZOjjFojak4CeiNPjU0nX1yONxTgNMO1uy/w6xAoYzCFbFxDsU28SbuutRX21PiwpRKeruhBDU6C7BVUYqi5+0/Rrox42Sa4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781016041; c=relaxed/simple; bh=JYW1wo5ab8agRdVZbjqrOWWaceuU0TjELaoVo7f/di4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mlNc0mtqwwiuydHQWsy8XUPmMZG+fkqME3XfQrNlJ7GJ4awSynxlPlxyER9zJ0BqE+lWBnjSAKPTjvuvp0Z49YCIWZ714B2yXndiNPr0Gro9D2SpQUbfiwj1VRKOkIldXCrXtWobZX07lv6jYii5DrMqJWViU9o7fLWV4+83My8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=okF+TBs0; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="okF+TBs0" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-490bc6a7958so50352375e9.1 for ; Tue, 09 Jun 2026 07:40:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1781016037; x=1781620837; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AWKqHsTkFl2zrGvjPzv1+aBtZDDjn0PHucQTDAlzntI=; b=okF+TBs0J79RQn0PzVO0SjhBO5GMfXX5AIDumpnwGKBQ4kM5lnpJ57LPol8qnITEVQ l3xatgaaNknnpuBjXHqyqgADPYi2q9DXztFR08okzvED48/YwWoU/i6Iu/hn6Q8q9XyE EQEuTj4/9UHDTq+v1xNgFiLgYn2lReUoRELUhITb0d21D6UATTaUk2RZqyCIlpSd6x/1 tyJ7/mdA25diPej/hfoJKXySAvUCaDtJwNMkVErefVKiLBM4zCU7GNvLGJYwtZlNEl6Q LtwSspbtrf0OVlXzm1ByOTryZepLdOlRoMCh8arY4recvd3FYC2JiZ803uNBCQBj0Nu6 tgbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781016037; x=1781620837; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AWKqHsTkFl2zrGvjPzv1+aBtZDDjn0PHucQTDAlzntI=; b=YCcqHTvVbbxRFGsA0S4mvgvwP8GkfNWVvSaa0B4yGuz7T6Smi5148tHeaPEhJbN7t1 e35YZxNoQm+EXIBuTktb8e6x5QGAj5SDXPO+mtleRVPRE5gkHzsedFGwkPMxj3FA5bu9 30oUlwp65s2bQITYKXESw8Kj0qs+uOgQAXAa8XVFmXOA3NK8Xp9tDsKdTQzldgc0jn8/ KvMxXc1nQhiNSpz+g6dIGUU9mZNbb0MZnlgot5MMEXWJ9Iy2nt/ZtTRGjgPZ5HBnrR9S 8E2j0pgQCYgGyyS+JoqqUHDjUy9hnVSuz6VF5Lc+r/YPDnM7SADHEqyTFwpXon0hfSih eDIw== X-Forwarded-Encrypted: i=1; AFNElJ8vawo1zpWGtvMOgM39igQoC3oLsN9z8koggusqN5DLdvW0ECJUClN4Z8RcQIlbHNLJLfyKQA/x1urxSqA=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8NoppA6x4NKpZGRHdlZBRR0wtN38cC3o1UjGY+J9hoK8hAcJy dYv1MC8U0nFi51kxk8NuQLF0QG9y4wCjt2c8aVKRyYoO+xQibC830PMQ1nDmlqtqklw= X-Gm-Gg: Acq92OGGCPUyxw5KYmeLzqR9MCbutGsIUogim568eqwcfoI4RCK102K8AA264k3fC3y gcESFPTQDYQbtFHgEPgqs8doLRO+eV1ziWhDkNHeGJDKpMPMxMzFjSFoj8Qp080lrDA2ZKp9YEy ury1Y+gq1vqnQS2VROeUC9mTiO3IBegj/aSTOw4LnMBFGtaIwTemQJRG2vfjGyIb2PXCWpkulkr dVg+c8cZ5IFqoIWNd5G8V4TnfQAsgoIpxjfjfmbzUv/RUzHVtmE+Hj2o/GOyMEHhwR+YKbwWnbV lsOj5FTlsqunwU/t3ctHzZUQ56Ro0umLfjvs4HsF/dxG/ILNJk4TrJlCI+q3WjVbgEh7qVNLaFZ 2lWDKDYl21raRnhhOrdBNZRa7Ze1ip6oZamibRcyNoh+6kl5DRFb+ydUCawwwC+O8RjkCAUcOt+ IiGWHgrbydrEYokqdRKyEdNiQk6uw8I0ESWmvEOPxkvLg= X-Received: by 2002:a05:600c:3588:b0:490:4b89:5372 with SMTP id 5b1f17b1804b1-490c2cf5433mr301467195e9.11.1781016037671; Tue, 09 Jun 2026 07:40:37 -0700 (PDT) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490bc3c1149sm428411935e9.4.2026.06.09.07.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2026 07:40:37 -0700 (PDT) From: James Clark Date: Tue, 09 Jun 2026 15:40:15 +0100 Subject: [PATCH v5 10/19] perf test cs-etm: Test decoding for concurrent threads test Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260609-james-cs-context-tracking-fix-v5-10-d53a7d096a19@linaro.org> References: <20260609-james-cs-context-tracking-fix-v5-0-d53a7d096a19@linaro.org> In-Reply-To: <20260609-james-cs-context-tracking-fix-v5-0-d53a7d096a19@linaro.org> To: Suzuki K Poulose , Mike Leach , Leo Yan , Arnaldo Carvalho de Melo , Namhyung Kim , Jiri Olsa , Ian Rogers , Amir Ayupov , Jonathan Corbet , Shuah Khan , Paschalis Mpeis Cc: coresight@lists.linaro.org, linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , linux-doc@vger.kernel.org, James Clark X-Mailer: b4 0.14.0 The thread_loop test only looks for context IDs in the raw trace. There's a lot more that can go wrong when decoding these, so replace it with a test that looks at the final output for matching thread names and symbols. In the future we might use timestamps and context switch events to track threads, so looking at context IDs in the raw trace wouldn't always work. Reviewed-by: Leo Yan Signed-off-by: James Clark --- .../tests/shell/coresight/concurrent_threads.sh | 45 ++++++++++++++++++++++ .../shell/coresight/thread_loop_check_tid_10.sh | 23 ----------- .../shell/coresight/thread_loop_check_tid_2.sh | 23 ----------- 3 files changed, 45 insertions(+), 46 deletions(-) diff --git a/tools/perf/tests/shell/coresight/concurrent_threads.sh b/tools/perf/tests/shell/coresight/concurrent_threads.sh new file mode 100755 index 000000000000..3349fff8c767 --- /dev/null +++ b/tools/perf/tests/shell/coresight/concurrent_threads.sh @@ -0,0 +1,45 @@ +#!/bin/bash -e +# CoreSight concurrent threads (exclusive) + +# SPDX-License-Identifier: GPL-2.0 + +# If CoreSight is not available, skip the test +perf list pmu | grep -q cs_etm || exit 2 + +tmpdir=$(mktemp -d /tmp/__perf_test.coresight_concurrent_threads.XXXXX) + +cleanup() { + rm -rf "${tmpdir}" + trap - EXIT TERM INT +} + +trap_cleanup() { + cleanup + exit 1 +} +trap trap_cleanup EXIT TERM INT + +cf="$tmpdir/ctl" +af="$tmpdir/ack" +mkfifo "$cf" "$af" + +nthreads=10 + +# Timestamps off to reduce trace size, start disabled and use the control FIFO +# to only record the workload and not startup. +perf record -o "$tmpdir/data" -e cs_etm/timestamp=0/u -D -1 --control fifo:"$cf","$af" \ + -- perf test --record-ctl fifo:"$cf","$af" -w named_threads $nthreads 1 > /dev/null 2>&1 + +perf script -i "$tmpdir/data" > "$tmpdir/script" 2>/dev/null + +# Check all threads were traced and they have the correct thread name and symbol +for i in $(seq 1 $nthreads); do + if ! grep -q "thread${i} .* named_threads_thread${i}" "$tmpdir/script"; then + echo "Error: thread${i} missing" >&2 + cleanup + exit 1 + fi +done + +cleanup +exit 0 diff --git a/tools/perf/tests/shell/coresight/thread_loop_check_tid_10.sh b/tools/perf/tests/shell/coresight/thread_loop_check_tid_10.sh deleted file mode 100755 index 7f43a93a2ac2..000000000000 --- a/tools/perf/tests/shell/coresight/thread_loop_check_tid_10.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -e -# CoreSight / Thread Loop 10 Threads - Check TID (exclusive) - -# SPDX-License-Identifier: GPL-2.0 -# Carsten Haitzler , 2021 - -TEST="thread_loop" - -# shellcheck source=../lib/coresight.sh -. "$(dirname $0)"/../lib/coresight.sh - -ARGS="10 1" -DATV="check-tid-10th" -# shellcheck disable=SC2153 -DATA="$DATD/perf-$TEST-$DATV.data" -STDO="$DATD/perf-$TEST-$DATV.stdout" - -SHOW_TID=1 perf record -s $PERFRECOPT -o "$DATA" "$BIN" $ARGS > $STDO - -perf_dump_aux_tid_verify "$DATA" "$STDO" - -err=$? -exit $err diff --git a/tools/perf/tests/shell/coresight/thread_loop_check_tid_2.sh b/tools/perf/tests/shell/coresight/thread_loop_check_tid_2.sh deleted file mode 100755 index a94d2079ed06..000000000000 --- a/tools/perf/tests/shell/coresight/thread_loop_check_tid_2.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -e -# CoreSight / Thread Loop 2 Threads - Check TID (exclusive) - -# SPDX-License-Identifier: GPL-2.0 -# Carsten Haitzler , 2021 - -TEST="thread_loop" - -# shellcheck source=../lib/coresight.sh -. "$(dirname $0)"/../lib/coresight.sh - -ARGS="2 20" -DATV="check-tid-2th" -# shellcheck disable=SC2153 -DATA="$DATD/perf-$TEST-$DATV.data" -STDO="$DATD/perf-$TEST-$DATV.stdout" - -SHOW_TID=1 perf record -s $PERFRECOPT -o "$DATA" "$BIN" $ARGS > $STDO - -perf_dump_aux_tid_verify "$DATA" "$STDO" - -err=$? -exit $err -- 2.34.1