From nobody Sun May 10 16:25:58 2026 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 38BAAC433F5 for ; Fri, 29 Apr 2022 12:31:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359177AbiD2Mem (ORCPT ); Fri, 29 Apr 2022 08:34:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359269AbiD2Meb (ORCPT ); Fri, 29 Apr 2022 08:34:31 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 5B731C8BD5 for ; Fri, 29 Apr 2022 05:31:13 -0700 (PDT) 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 E3ED711FB; Fri, 29 Apr 2022 05:31:12 -0700 (PDT) Received: from e127744.arm.com (unknown [10.57.46.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 6D40B3F73B; Fri, 29 Apr 2022 05:31:10 -0700 (PDT) From: German Gomez To: coresight@lists.linaro.org, mathieu.poirier@linaro.org, suzuki.poulose@arm.com Cc: james.clark@arm.com, leo.yan@linaro.org, mike.leach@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, German Gomez Subject: [PATCH 1/2] coresight: etm4x: Expose default timestamp source in sysfs Date: Fri, 29 Apr 2022 13:30:59 +0100 Message-Id: <20220429123100.268059-2-german.gomez@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220429123100.268059-1-german.gomez@arm.com> References: <20220429123100.268059-1-german.gomez@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" Add a new sysfs interface in /sys/bus/coresight/devices/etm/ts_source indicating the configured timestamp source when the ETM device driver was probed. The perf tool will use this information to detect if the trace data timestamp matches the kernel time, enabling correlation of CoreSight trace with perf events. Suggested-by: Suzuki K Poulose Signed-off-by: German Gomez Reviewed-by: Leo Yan --- arch/arm64/include/asm/sysreg.h | 1 + .../coresight/coresight-etm4x-sysfs.c | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysre= g.h index 38508e507d73a..263a7bee06f9a 100644 --- a/arch/arm64/include/asm/sysreg.h +++ b/arch/arm64/include/asm/sysreg.h @@ -1146,6 +1146,7 @@ #define SYS_MPIDR_SAFE_VAL (BIT(31)) =20 #define TRFCR_ELx_TS_SHIFT 5 +#define TRFCR_ELx_TS_MASK ((0x3UL) << TRFCR_ELx_TS_SHIFT) #define TRFCR_ELx_TS_VIRTUAL ((0x1UL) << TRFCR_ELx_TS_SHIFT) #define TRFCR_ELx_TS_GUEST_PHYSICAL ((0x2UL) << TRFCR_ELx_TS_SHIFT) #define TRFCR_ELx_TS_PHYSICAL ((0x3UL) << TRFCR_ELx_TS_SHIFT) diff --git a/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c b/drivers/= hwtracing/coresight/coresight-etm4x-sysfs.c index a0640fa5c55bd..c0c375c0cfde2 100644 --- a/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c +++ b/drivers/hwtracing/coresight/coresight-etm4x-sysfs.c @@ -2264,6 +2264,39 @@ static ssize_t cpu_show(struct device *dev, } static DEVICE_ATTR_RO(cpu); =20 +static int etmv4_to_ts_source(struct etmv4_drvdata *drvdata) +{ + int val; + + if (!drvdata->trfcr) + return -1; + + switch (drvdata->trfcr & TRFCR_ELx_TS_MASK) { + case TRFCR_ELx_TS_VIRTUAL: + case TRFCR_ELx_TS_GUEST_PHYSICAL: + case TRFCR_ELx_TS_PHYSICAL: + val =3D FIELD_GET(TRFCR_ELx_TS_MASK, drvdata->trfcr); + break; + default: + val =3D -1; + break; + } + + return val; +} + +static ssize_t ts_source_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + int val; + struct etmv4_drvdata *drvdata =3D dev_get_drvdata(dev->parent); + + val =3D etmv4_to_ts_source(drvdata); + return sysfs_emit(buf, "%d\n", val); +} +static DEVICE_ATTR_RO(ts_source); + static struct attribute *coresight_etmv4_attrs[] =3D { &dev_attr_nr_pe_cmp.attr, &dev_attr_nr_addr_cmp.attr, @@ -2318,6 +2351,7 @@ static struct attribute *coresight_etmv4_attrs[] =3D { &dev_attr_vmid_val.attr, &dev_attr_vmid_masks.attr, &dev_attr_cpu.attr, + &dev_attr_ts_source.attr, NULL, }; =20 --=20 2.25.1 From nobody Sun May 10 16:25:58 2026 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 0A703C433EF for ; Fri, 29 Apr 2022 12:31:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1359192AbiD2Meq (ORCPT ); Fri, 29 Apr 2022 08:34:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359295AbiD2Mej (ORCPT ); Fri, 29 Apr 2022 08:34:39 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id AB0EDC90E7 for ; Fri, 29 Apr 2022 05:31:19 -0700 (PDT) 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 5DEC91063; Fri, 29 Apr 2022 05:31:19 -0700 (PDT) Received: from e127744.arm.com (unknown [10.57.46.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 04ECA3F73B; Fri, 29 Apr 2022 05:31:16 -0700 (PDT) From: German Gomez To: coresight@lists.linaro.org, mathieu.poirier@linaro.org, suzuki.poulose@arm.com Cc: james.clark@arm.com, leo.yan@linaro.org, mike.leach@linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, German Gomez Subject: [PATCH 2/2] coresight: etm4x: docs: Add documentation for 'ts_source' sysfs interface Date: Fri, 29 Apr 2022 13:31:00 +0100 Message-Id: <20220429123100.268059-3-german.gomez@arm.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220429123100.268059-1-german.gomez@arm.com> References: <20220429123100.268059-1-german.gomez@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sync sysfs documentation pages to include the new ts_source (timestamp source) interface. Signed-off-by: German Gomez --- .../ABI/testing/sysfs-bus-coresight-devices-etm4x | 8 ++++++++ .../trace/coresight/coresight-etm4x-reference.rst | 14 ++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm4x b/= Documentation/ABI/testing/sysfs-bus-coresight-devices-etm4x index 8e53a32f81505..19ac9d6d2f504 100644 --- a/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm4x +++ b/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm4x @@ -516,3 +516,11 @@ Contact: Mathieu Poirier Description: (Read) Returns the number of special conditional P1 right-han= d keys that the trace unit can use (0x194). The value is taken directly from the HW. + +What: /sys/bus/coresight/devices/etm/ts_source +Date: April 2022 +KernelVersion: 5.18 +Contact: Mathieu Poirier +Description: (Read) When FEAT_TRF is implemented, value of TRFCR_ELx.TS us= ed for + trace session. Otherwise -1 indicates an unknown time source. Check + trcidr0.tssize to see if a global timestamp is available. diff --git a/Documentation/trace/coresight/coresight-etm4x-reference.rst b/= Documentation/trace/coresight/coresight-etm4x-reference.rst index d25dfe86af9bf..f016c7c29429b 100644 --- a/Documentation/trace/coresight/coresight-etm4x-reference.rst +++ b/Documentation/trace/coresight/coresight-etm4x-reference.rst @@ -71,6 +71,20 @@ the =E2=80=98TRC=E2=80=99 prefix. =20 ---- =20 +:File: ``ts_source`` (ro) +:Trace Registers: None. +:Notes: + When FEAT_TRF is implemented, value of TRFCR_ELx.TS used for trace ses= sion. Otherwise -1 + indicates an unknown time source. Check trcidr0.tssize to see if a glo= bal timestamp is + available. + +:Example: + ``$> cat ts_source`` + + ``$> 1`` + +---- + :File: ``addr_idx`` (rw) :Trace Registers: None. :Notes: --=20 2.25.1