From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 81A2F40910A for ; Tue, 2 Jun 2026 14:27:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780410454; cv=none; b=CgE2gQ2d2YSKnEAM8BF43jcluL+1G+3JlHeN5FNgxW7BIPsP+KPPlKdcK59mZ9OY3ksluNl+qrdLWfkG8e9KFJCWcexEfzBU/ZRffvTzY0dmZvXN4qYpFEDDn9q2//Au/xvG4rycNYj2eq8sK6lVFqzhKn3kkH33bMNr/Nnlr+Y= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780410454; c=relaxed/simple; bh=+NVyoMoDiCeBbRcKsQIV0kaH0gzBxCHgeoMNyjllUrQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ry6qRfDVdaiB6Jl/JUL8b1xobDt7e4VAN1ijGI9eXNmw4V5Z/Blil9N+3x7Fa/V5FEXLLg5ZtjcfsKBEK4p1yzAR4h44izELZ3L7bCp3hi8x/St/kBnNAcARPqw5AoJc0EqYxzFvE939T6NDWJHDUoHNefAxcRaPVS2Lr5QTHnY= 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=hiGN6NE/; arc=none smtp.client-ip=209.85.128.45 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="hiGN6NE/" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-490b4e1ade7so476925e9.0 for ; Tue, 02 Jun 2026 07:27:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1780410451; x=1781015251; 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=lBRnQlPosMN+k8SaoyM/0M+4oXOyWiGOMBDGTHkddk8=; b=hiGN6NE/8UOnpNIeNZPU13Iw2+1JZVGF0S3NWww55GJTk1tA4BHhHGUF5xzvGm0uKc UnapDNLw/2dk/Xr/7PS5qBlbURcM50krcq6v6nDE6O4AUfxJxZfUYM6veiADPGNyECV/ k0wCrnOqKuITzFIOGThwwqKVIKB/8D/mUB+FQYhena3oMaOtWgbaT6vEdg7WQkoLtcxP M+BOhKFdMhibKq+VgY92g80Sf5ep5Bh6CTGlOSDHhYtBA3ny7OUFtG8d2zDPF7QXJYD2 c4UbpohN8KmBSYBuIuJaA2iefcPzX91UEbRfiF2onwpyoo6TUYZdVKjKw98PDM98HYMM jyMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780410451; x=1781015251; 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=lBRnQlPosMN+k8SaoyM/0M+4oXOyWiGOMBDGTHkddk8=; b=JXNmY1VvBWzZlxukwwJH3TCN3SM82Oef8yP2n+cUAgStKwj1/K7vnEfhY7AlO1DCMs 4bVlYNlQDusCDgvMXvUQEhWkLVZ73yO2RswHzz/vVQuQwymQAIfJ1ZktskEzd27mmh1d Jza5op0eJADPKpq/m4Rq/hwYR9WzeKqlTaUGQS3UhKsnJ1A1H+yZW3Ju4+dZMG8QshRw QV++AUJCUH62geQOmOm/gzu/kVTIYKWthaunCC7MQdCczgU/Or/LVD1RB/tUWnnnY0cA NAiM+KH+T1eTc4aOXSBdOFN2xcvup4CTcnQidHWP2rJ+nN3uxrYSSE9IvboWOCqjYLQP M+SQ== X-Forwarded-Encrypted: i=1; AFNElJ8Cw2PwzclUto1/V1vBGXc309A4CqZzUbeXNGhTyIW3wcJowu7/8nF+J/oqP/G3vbdUJ44rgXMIiL9B/AE=@vger.kernel.org X-Gm-Message-State: AOJu0YxZ2eR2lx/kTn2/XVEYPe31LWuc5tax+Z9ZZjXd9FV95Bjy/OW+ NDB3/9LsEMTh1gSfd7IAxzP48JCVdRiOnxPeJUCkuUSmyL3fAequpPZQPfbkAgb71gA= X-Gm-Gg: Acq92OGDpr1IeLHUMkiBUEXxG4P2OND0u6zbFjRwouUW+6homlXzxSM5ZD9ECP+kUrn u6/XuPyJP1PsTeCZH3Iq4JKnTyPUAUT6QEHodDIScehM1hNDPa1K/5K0+4aeA5BPy16+pxxEJUh pgjJVze1zFCbGrfIEXNd/x2z1b0A064RB/EylPYMnOIURR6OYDb8yRdNLkKXEKzWF3OzGojE1QI a3T3brOJDIf1CCE2CV6S/w+uJ9Kt58SA40F1DQaN/UTQqjFoo25cNW0+cCVm6aqREsYW0dVlBJ5 s6yEQfNrvNLODufYLf4Btwkl1uyUJKKwqDHMtVxeGY4jhj86kQcb6ZZULIWyW/DcRIY7MhJsG/v pRnPBQUNT6fNUqkvwOGpwUP3DvHMCUrbGrVrzn89jyMLhm9NDVXUgbZxr79cFWXchzzFrERiKrF oh6njwce0McbR4he+UvYTG7G4BxHYSdd4Teb4L5njAA0w= X-Received: by 2002:a05:600d:6454:20b0:490:9ea0:c11f with SMTP id 5b1f17b1804b1-490a2904d8amr208279205e9.5.1780410450823; Tue, 02 Jun 2026 07:27:30 -0700 (PDT) Received: from ho-tower-lan.lan ([185.48.77.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490b0e18e1csm66771965e9.4.2026.06.02.07.27.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 07:27:30 -0700 (PDT) From: James Clark Date: Tue, 02 Jun 2026 15:26:52 +0100 Subject: [PATCH v2 10/18] 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: <20260602-james-cs-context-tracking-fix-v2-10-85b5ce6f55c6@linaro.org> References: <20260602-james-cs-context-tracking-fix-v2-0-85b5ce6f55c6@linaro.org> In-Reply-To: <20260602-james-cs-context-tracking-fix-v2-0-85b5ce6f55c6@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. 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..bf34d4ee77a6 --- /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 --workload-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