From: Jie Gan <jie.gan@oss.qualcomm.com>
To: Suzuki K Poulose <suzuki.poulose@arm.com>,
Jie Gan <jie.gan@oss.qualcomm.com>,
Mike Leach <mike.leach@arm.com>,
James Clark <james.clark@linaro.org>, Leo Yan <leo.yan@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Tingwei Zhang <tingwei.zhang@oss.qualcomm.com>
Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] coresight: tpdm: add traceid_show for checking traceid
Date: Mon, 16 Mar 2026 18:29:13 +0800 [thread overview]
Message-ID: <8f37ae07-f211-4d43-bc01-4ab17a0d1f32@oss.qualcomm.com> (raw)
In-Reply-To: <a503ecdc-53e9-4c7a-b228-f697fb9c0ac6@arm.com>
Hi Suzuki,
On 3/16/2026 5:32 PM, Suzuki K Poulose wrote:
> On 16/03/2026 07:23, Jie Gan wrote:
>> Save the trace ID in drvdata during TPDM enablement and expose it
>> to userspace to support trace data parsing.
>>
>> The TPDM device’s trace ID corresponds to the trace ID allocated
>> to the connected TPDA device.
>>
>> Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
>> ---
>> Changes in V2:
>> 1. Use sysfs_emit instead of sprintf.
>> Link to V1 - https://lore.kernel.org/all/20260306-add-traceid-show-
>> for-tpdm-v1-1-0658a8edb972@oss.qualcomm.com/
>
> Why is this patch required even ? For each TPDM there is a single
It's taking effort to retrieve the trace ID of the TPDA device because
it's not a source device. The trace ID is required to identify the
origin of the trace data and is essential for parsing the received data.
> port in a single TPDA in the system where it can reach and that is
> fixed for a platform. Can we not get this from there ? Also, there
> is not TraceID technically for a TPDM, right ? It is all a property
Yes, we dont allocate trace ID for a TPDM device. The TraceID is
allocated to the TPDA device.
Thanks,
Jie
> of the TPDA ?
>
> Suzuki
>
>
>> ---
>> drivers/hwtracing/coresight/coresight-tpdm.c | 31 ++++++++++++++++++
>> +++++++++-
>> drivers/hwtracing/coresight/coresight-tpdm.h | 2 ++
>> 2 files changed, 32 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hwtracing/coresight/coresight-tpdm.c b/drivers/
>> hwtracing/coresight/coresight-tpdm.c
>> index da77bdaad0a4..774a63def817 100644
>> --- a/drivers/hwtracing/coresight/coresight-tpdm.c
>> +++ b/drivers/hwtracing/coresight/coresight-tpdm.c
>> @@ -481,7 +481,7 @@ static void __tpdm_enable(struct tpdm_drvdata
>> *drvdata)
>> static int tpdm_enable(struct coresight_device *csdev, struct
>> perf_event *event,
>> enum cs_mode mode,
>> - __maybe_unused struct coresight_path *path)
>> + struct coresight_path *path)
>> {
>> struct tpdm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
>> @@ -497,6 +497,7 @@ static int tpdm_enable(struct coresight_device
>> *csdev, struct perf_event *event,
>> }
>> __tpdm_enable(drvdata);
>> + drvdata->traceid = path->trace_id;
>> drvdata->enable = true;
>> spin_unlock(&drvdata->spinlock);
>> @@ -693,6 +694,26 @@ static struct attribute_group tpdm_attr_grp = {
>> .attrs = tpdm_attrs,
>> };
>> +static ssize_t traceid_show(struct device *dev,
>> + struct device_attribute *attr, char *buf)
>> +{
>> + unsigned long val;
>> + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
>> +
>> + val = drvdata->traceid;
>> + return sysfs_emit(buf, "%#lx\n", val);
>> +}
>> +static DEVICE_ATTR_RO(traceid);
>> +
>> +static struct attribute *traceid_attrs[] = {
>> + &dev_attr_traceid.attr,
>> + NULL,
>> +};
>> +
>> +static struct attribute_group traceid_attr_grp = {
>> + .attrs = traceid_attrs,
>> +};
>> +
>> static ssize_t dsb_mode_show(struct device *dev,
>> struct device_attribute *attr,
>> char *buf)
>> @@ -1367,6 +1388,12 @@ static const struct attribute_group
>> *tpdm_attr_grps[] = {
>> &tpdm_cmb_patt_grp,
>> &tpdm_cmb_msr_grp,
>> &tpdm_mcmb_attr_grp,
>> + &traceid_attr_grp,
>> + NULL,
>> +};
>> +
>> +static const struct attribute_group *static_tpdm_attr_grps[] = {
>> + &traceid_attr_grp,
>> NULL,
>> };
>> @@ -1425,6 +1452,8 @@ static int tpdm_probe(struct device *dev, struct
>> resource *res)
>> desc.access = CSDEV_ACCESS_IOMEM(base);
>> if (res)
>> desc.groups = tpdm_attr_grps;
>> + else
>> + desc.groups = static_tpdm_attr_grps;
>
> > drvdata->csdev = coresight_register(&desc);> if
> (IS_ERR(drvdata->csdev))
>> return PTR_ERR(drvdata->csdev);
>> diff --git a/drivers/hwtracing/coresight/coresight-tpdm.h b/drivers/
>> hwtracing/coresight/coresight-tpdm.h
>> index 2867f3ab8186..befecbb896f4 100644
>> --- a/drivers/hwtracing/coresight/coresight-tpdm.h
>> +++ b/drivers/hwtracing/coresight/coresight-tpdm.h
>> @@ -300,6 +300,7 @@ struct cmb_dataset {
>> * @cmb Specifics associated to TPDM CMB.
>> * @dsb_msr_num Number of MSR supported by DSB TPDM
>> * @cmb_msr_num Number of MSR supported by CMB TPDM
>> + * @traceid trace ID of the path.
>> */
>> struct tpdm_drvdata {
>> @@ -313,6 +314,7 @@ struct tpdm_drvdata {
>> struct cmb_dataset *cmb;
>> u32 dsb_msr_num;
>> u32 cmb_msr_num;
>> + u8 traceid;
>> };
>> /* Enumerate members of various datasets */
>>
>> ---
>> base-commit: b84a0ebe421ca56995ff78b66307667b62b3a900
>> change-id: 20260316-add-traceid-show-for-tpdm-88d040651f00
>>
>> Best regards,
>
>
next prev parent reply other threads:[~2026-03-16 10:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-16 7:23 Jie Gan
2026-03-16 9:32 ` Suzuki K Poulose
2026-03-16 10:29 ` Jie Gan [this message]
2026-03-16 11:20 ` Suzuki K Poulose
2026-03-17 1:33 ` Jie Gan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8f37ae07-f211-4d43-bc01-4ab17a0d1f32@oss.qualcomm.com \
--to=jie.gan@oss.qualcomm.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=coresight@lists.linaro.org \
--cc=james.clark@linaro.org \
--cc=leo.yan@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mike.leach@arm.com \
--cc=suzuki.poulose@arm.com \
--cc=tingwei.zhang@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®