From nobody Sat Sep 26 12:32:58 2026 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 882C247ECC1; Tue, 1 Sep 2026 16:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280591; cv=none; b=LsCz8Y0a0o680R6iXUOx8AQ7Zr09niwNWxK9d52l7cKtJGCz06pvkl3HEOS50Y7Zcjm4hYpeZSW5MuyHdi1aWS+QHL6z/TK1CErig742ViQhc+f0dM14Yhar/fmpmEogNH2yCQNpw7NZuSiYQJQtHIV06YRuZCkMXwY1E/Y8xNY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280591; c=relaxed/simple; bh=iMtaS5GWT0jFESE4RL7PHAY9JqupVahiVJckgzwls+w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fF/qDqOetPztdqSabMrNpP/Bq3sDQI1hzt4IRM/+qN+uw1AGs0uwPXNZVkUz35LcB2lGmC5/gLgBpB7Tg3CjwsaDmpuC9WHLbffwd3TwQR/QxLJQgmPJMglJNvLz1ZgH5teKj9W+6plr/Sf7tZFsv/Plm7MZMrgVQVfrsw8CJwI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=SRUlRGAB; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="SRUlRGAB" 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 2C58D1BD0; Tue, 1 Sep 2026 09:36:25 -0700 (PDT) Received: from e132581.arm.com (unknown [10.2.196.114]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 24FB53F85F; Tue, 1 Sep 2026 09:36:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1788280588; bh=iMtaS5GWT0jFESE4RL7PHAY9JqupVahiVJckgzwls+w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=SRUlRGABFptdnM91OaKeohvJHQbHyEn2+3wfjPHtipzXJaGlc2SHnJtgkYwIq9DsT 4pMjceAzzKGlveJpmnuT2JWOYgSHpGjOUDOWpXgPx9ftKpg47xsCKfaTdxjiCItYw1 xCmpAwHWrwqSQ4GwAj7XyCKQup8Evhv9J6N8JUV8= From: Leo Yan Date: Tue, 01 Sep 2026 17:36:15 +0100 Subject: [PATCH 1/3] perf/core: Export perf_event_itrace_started() 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: quoted-printable Message-Id: <20260901-perf_suppress_itrace_start_records-v1-1-c4fbc6860859@arm.com> References: <20260901-perf_suppress_itrace_start_records-v1-0-c4fbc6860859@arm.com> In-Reply-To: <20260901-perf_suppress_itrace_start_records-v1-0-c4fbc6860859@arm.com> To: Peter Zijlstra , Ingo Molnar , Will Deacon , Suzuki K Poulose , Mark Rutland , Adrian Hunter , James Clark , Mike Leach , Tamas Petz , Tamas Zsoldos Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org, Leo Yan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788280584; l=763; i=leo.yan@arm.com; s=20250604; h=from:subject:message-id; bh=iMtaS5GWT0jFESE4RL7PHAY9JqupVahiVJckgzwls+w=; b=woIwLWnXbrAOStcXTnYAgUT0ItWKPN5TCRiHcwDNRnJiYUEnHPoXJW0xbje5sbpQoQh4eulHW lhsfg+a9tr0A5nte1YqsAA1PfTBZPvmYbFbA1YsPbVtdKBTbGghkBgd X-Developer-Key: i=leo.yan@arm.com; a=ed25519; pk=k4BaDbvkCXzBFA7Nw184KHGP5thju8lKqJYIrOWxDhI= Since Arm SPE and CoreSight drivers can be built as modules, export perf_event_itrace_started() so that it can be used by these modules. Signed-off-by: Leo Yan --- kernel/events/core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/events/core.c b/kernel/events/core.c index a6c8e38a311042afab6b65814a84c67b87ba929b..8afe89179a62127eebae0f38f29= cde045ba56251 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -10560,6 +10560,7 @@ void perf_event_itrace_started(struct perf_event *e= vent) { WRITE_ONCE(event->attach_state, event->attach_state | PERF_ATTACH_ITRACE); } +EXPORT_SYMBOL_GPL(perf_event_itrace_started); =20 static void perf_log_itrace_start(struct perf_event *event) { --=20 2.34.1 From nobody Sat Sep 26 12:32:58 2026 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 97802481AAE; Tue, 1 Sep 2026 16:36:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280593; cv=none; b=aTLa+6OaJ1Hag6KlUYhSQL7AlzIWzDSZl0NkB+x6YXHQ6jOZmuEVPMP0pOcncP7Wy19pz8PBTiXdwgs+c6hTpuyyTRqQZdsGmCBzmJyOwYH63pu2pM1avpxBIQimyj5/0JET8Ul88nyFH9RZZfryAyQFmT9flRD+T26Rx38dEns= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280593; c=relaxed/simple; bh=xJBbbZZo8b7Loc2wr9E8P5lEJOTEHAM+aFvWr+qdXhE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uE1qH7BOmiCmI8EOPyyUii9sxKzgMv3GeksZykFW5WaiqMlwMDWsTqkDF1Q47CkXllvhLK951/P1orfwuDRIhbyeMJo325abr/0RcqR7GQ+FjTer/hNuP+iTydZs+YQLQVYSZ+7nI8fvO7EKhnH+iKB36yX+V1mCVqRtdCCH2MY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=EM8CxYAW; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="EM8CxYAW" 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 3B4871CDD; Tue, 1 Sep 2026 09:36:27 -0700 (PDT) Received: from e132581.arm.com (unknown [10.2.196.114]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 33A033F85F; Tue, 1 Sep 2026 09:36:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1788280591; bh=xJBbbZZo8b7Loc2wr9E8P5lEJOTEHAM+aFvWr+qdXhE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EM8CxYAWvFTLZFh0H/z6mpdd9NrmrQRe8QHmNNgz+t0RU4prsoZ6+n1K08iRTbkV3 F426Y2ZUqI71KqHVvGA535Y4anINcoy0PD0eimS6JVnetR3DyG/bJTM4nSv/qn5PpY 1bA3QrIuHlJJubkZlgZVoq/mS/wbF+15aBRp+LPc= From: Leo Yan Date: Tue, 01 Sep 2026 17:36:16 +0100 Subject: [PATCH 2/3] perf: arm_spe: Suppress redundant ITRACE start records 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: quoted-printable Message-Id: <20260901-perf_suppress_itrace_start_records-v1-2-c4fbc6860859@arm.com> References: <20260901-perf_suppress_itrace_start_records-v1-0-c4fbc6860859@arm.com> In-Reply-To: <20260901-perf_suppress_itrace_start_records-v1-0-c4fbc6860859@arm.com> To: Peter Zijlstra , Ingo Molnar , Will Deacon , Suzuki K Poulose , Mark Rutland , Adrian Hunter , James Clark , Mike Leach , Tamas Petz , Tamas Zsoldos Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org, Leo Yan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788280584; l=957; i=leo.yan@arm.com; s=20250604; h=from:subject:message-id; bh=xJBbbZZo8b7Loc2wr9E8P5lEJOTEHAM+aFvWr+qdXhE=; b=U8GkIQ8Sa/aUuleZ6Wj4REIryoMRqoWn5U6OhXZpm1juwlPzaVL9WmQR05GKeh/IO7oVIrb/+ QY4IxQxArNoAQ9NmbMz1/OF8YDj53W+3YjRXtXjfuPXpgnG5kAy8HoE X-Developer-Key: i=leo.yan@arm.com; a=ed25519; pk=k4BaDbvkCXzBFA7Nw184KHGP5thju8lKqJYIrOWxDhI= PERF_RECORD_ITRACE_START establishes the initial thread context at the beginning of a trace. Afterwards, decoders track the thread context using context packets or recorded sched_switch events. Call perf_event_itrace_started() when event starts to prevent perf core from emitting redundant PERF_RECORD_ITRACE_START records on later schedule-ins. Signed-off-by: Leo Yan --- drivers/perf/arm_spe_pmu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c index b70f3fedf0282baba1395ce1116272ec5f961ea8..40314ef8b731e1272e02783a9e6= dc7d92ec47139 100644 --- a/drivers/perf/arm_spe_pmu.c +++ b/drivers/perf/arm_spe_pmu.c @@ -890,6 +890,8 @@ static void arm_spe_pmu_start(struct perf_event *event,= int flags) return; } =20 + perf_event_itrace_started(event); + reg =3D arm_spe_event_to_pmsfcr(event); write_sysreg_s(reg, SYS_PMSFCR_EL1); =20 --=20 2.34.1 From nobody Sat Sep 26 12:32:58 2026 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9469E483811; Tue, 1 Sep 2026 16:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280595; cv=none; b=tba2FLOHegdckxrJvLugDzz8DgPwzndwFCbw+r0m/OZaMvdbbeYzOBlMPEn/D+NnD4NQRIHmdwkEC6sqyPcETJ9dybEgZAWentHhzMoxs0zU1nn9M7yP3qftvlbnuLWoB9VtnwXHIxw+sO7ZFcYHf1oeGEAelnGQfqyMmc52EKo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280595; c=relaxed/simple; bh=plbS3HrWoctD/KTUTIyQWYwlq1nvdgjH+NpGvIk01I0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dOp5ePJMKsFgn/nG3M8OHuK+x/6cV59bbnhl1+8wjstVKNDKB8xojVqf6Oc566hsFPPO7lcxgbwfQRA7YgH7fXb1ESzCJWAKwIODm5edSUI5z3Tp1XYh+1V04K3/zuimiEQBZ11DqYQzYbT15Hxa6IzRZwI5QmpxmvvaUG9QkSY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b=Rvw1F4Jq; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.b="Rvw1F4Jq" 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 479931756; Tue, 1 Sep 2026 09:36:29 -0700 (PDT) Received: from e132581.arm.com (unknown [10.2.196.114]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 436883F85F; Tue, 1 Sep 2026 09:36:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss; t=1788280593; bh=plbS3HrWoctD/KTUTIyQWYwlq1nvdgjH+NpGvIk01I0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Rvw1F4JqFT9cmvfKZRxPyC/CyJi67KrhZbPdsaRElG7OG4W1iSsG6YHGXDbveaNBr GXDQuv2tEcSYrw0/EVsUH2EGMXpkB1+PETo0WQuEVIL1zRNhrics/94/sKwvuHtGPC taC87RhVxDsDn+VLt0PZrzeKrPkXQAa7JTnRYDP8= From: Leo Yan Date: Tue, 01 Sep 2026 17:36:17 +0100 Subject: [PATCH 3/3] coresight: perf: Suppress ITRACE start records 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: quoted-printable Message-Id: <20260901-perf_suppress_itrace_start_records-v1-3-c4fbc6860859@arm.com> References: <20260901-perf_suppress_itrace_start_records-v1-0-c4fbc6860859@arm.com> In-Reply-To: <20260901-perf_suppress_itrace_start_records-v1-0-c4fbc6860859@arm.com> To: Peter Zijlstra , Ingo Molnar , Will Deacon , Suzuki K Poulose , Mark Rutland , Adrian Hunter , James Clark , Mike Leach , Tamas Petz , Tamas Zsoldos Cc: linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, coresight@lists.linaro.org, Leo Yan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1788280584; l=1225; i=leo.yan@arm.com; s=20250604; h=from:subject:message-id; bh=plbS3HrWoctD/KTUTIyQWYwlq1nvdgjH+NpGvIk01I0=; b=M2xhsj9QnStXjg3/CiMvt7fs5r0R/XWoUkx20EZFiAisrr2dCZzjJbYY5Mj6SIxtIj7qKyvHO VipAxQad+BbDz1TkoYFA1EA67dG2VjzHfDd/uuk+eI5PPdPX1L9B0jf X-Developer-Key: i=leo.yan@arm.com; a=ed25519; pk=k4BaDbvkCXzBFA7Nw184KHGP5thju8lKqJYIrOWxDhI= PERF_RECORD_ITRACE_START establishes the initial thread context at the beginning of a trace. Afterwards, decoders track the thread context using context packets. Call perf_event_itrace_started() after successfully starting the event to prevent perf core from emitting redundant PERF_RECORD_ITRACE_START records when the event is scheduled in again. When per-thread mode traces multiple child threads, tooling should enable context ID tracing instead to identify each thread. Signed-off-by: Leo Yan --- drivers/hwtracing/coresight/coresight-etm-perf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwt= racing/coresight/coresight-etm-perf.c index 09b21a711a8764ea429d712890265c84648e889e..80502e8b084074980000a039e73= e1a164940011d 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -613,6 +613,8 @@ static void etm_event_start(struct perf_event *event, i= nt flags) perf_report_aux_output_id(event, hw_id); } =20 + perf_event_itrace_started(event); + out: /* Tell the perf core the event is alive */ event->hw.state =3D 0; --=20 2.34.1