Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Sizhe Liu <liusizhe5@huawei.com>
To: Yushan Wang <wangyushan12@huawei.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-pci@vger.kernel.org>,
	<linux-perf-users@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-doc@vger.kernel.org>, <linuxarm@huawei.com>,
	<prime.zeng@hisilicon.com>, <rostedt@goodmis.org>,
	<mhiramat@kernel.org>, <mathieu.desnoyers@efficios.com>,
	<corbet@lwn.net>, <skhan@linuxfoundation.org>,
	<bhelgaas@google.com>, <yangyccccc@gmail.com>, <jic23@kernel.org>,
	<john.g.garry@oracle.com>, <will@kernel.org>,
	<james.clark@linaro.org>, <mike.leach@arm.com>,
	<leo.yan@linux.dev>, <peterz@infradead.org>, <mingo@redhat.com>,
	<acme@kernel.org>, <namhyung@kernel.org>, <mark.rutland@arm.com>,
	<alexander.shishkin@linux.intel.com>, <jolsa@kernel.org>,
	<irogers@google.com>, <adrian.hunter@intel.com>,
	<wuzongyu1@huawei.com>
Subject: Re: [PATCH v2 7/8] hwtracing: hisi_ptt: Add pattern PMU config for trace format selection
Date: Wed, 2 Sep 2026 11:30:38 +0800	[thread overview]
Message-ID: <08e19f22-f0e7-4c79-8938-110e5150b507@huawei.com> (raw)
In-Reply-To: <c00d649f-aa24-40a8-849e-789ce1a6aca9@huawei.com>

On 2026/9/1 9:31, Yushan Wang wrote:
> On 8/27/2026 10:04 PM, Sizhe Liu wrote:
>> Introduce a `pattern` PMU config field (config:36-39) that controls
>> which TLP header format the hardware traces. bit[3:1] are reserved for
>> future extension and only bit0 is used currently:
>>
>> - pattern=0 (default, compatibility mode): the driver sets bit[8] of
>>     HISI_PTT_TRACE_CTRL so the hardware traces the data in compatibility
>>     mode.
>> - pattern=1: the driver clears bit[8] of HISI_PTT_TRACE_CTRL so the
>>     hardware traces the data pattern including some bitfields of the TLP
>>     header defined in PCIe r6.4 sec 2.2.1.2.
>>
>> Note that bit[8] of HISI_PTT_TRACE_CTRL is inverted with respect to the
>> `pattern` value: bit[8]=1 selects the legacy format, bit[8]=0 selects
>> the new format. Bit[11:9] is still reserved, which is consistent with the
>> PMU config field. The driver validates the 4-bit value in
>> hisi_ptt_trace_valid_pattern() and applies it in hisi_ptt_trace_start().
>>
>> Document the new parameter in Documentation/trace/hisi-ptt.rst.
>>
>> Signed-off-by: Sizhe Liu <liusizhe5@huawei.com>
>> ---
>>    Documentation/trace/hisi-ptt.rst | 25 +++++++++++++++++++++++--
>>    drivers/hwtracing/ptt/hisi_ptt.c | 25 ++++++++++++++++++++++++-
>>    drivers/hwtracing/ptt/hisi_ptt.h |  4 ++++
>>    3 files changed, 51 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/trace/hisi-ptt.rst b/Documentation/trace/hisi-ptt.rst
>> index f6a2655f99e5..c95eaa12f4d3 100644
>> --- a/Documentation/trace/hisi-ptt.rst
>> +++ b/Documentation/trace/hisi-ptt.rst
>> @@ -255,7 +255,28 @@ directly from the TLP header.
>>         DW2 [                     Header DW2                            ]
>>         DW3 [                     Header DW3                            ]
>>
>> -5. Memory Management
>> +5. Trace pattern
>> +-----------------
>> +
>> +You can control whether the trace is taken with the new version of the
>> +TLP header format by specifying the `pattern` parameter. The default
>> +value is 0, which means the legacy format is used for backward
>> +compatibility. The parameter value is 4 bit and bit[3:1] are currently
>> +reserved for extension. Current supported values are shown below:
>> +
>> +- 4'b0000: legacy trace format
>> +    DW2 and DW3 are printed with generic field names only, and
>> +    no message-type-basedfield decoding.
>> +- 4'b0001: trace format v1
>> +    DW2 and DW3 are decoded according to the TLP message type (MWr,
>> +    Msg, Atomic, IO, CPL, Cfg) with detailed field names. It is recommended to
>> +    use trace format v1 when the current PCIe link generation is higher than
>> +    PCIe 6.0.
>> +
>> +For trace data recorded by an older tracer without the `pattern` parameter,
>> +the decoder will work as `pattern` forced to 0.
>> +
>> +6. Memory Management
>>    --------------------
>>
>>    The traced TLP headers will be written to the memory allocated
>> @@ -274,7 +295,7 @@ will commit the AUX buffer first and then apply for a new one with
>>    the same size. The size of AUX buffer is default to 16MiB. User can
>>    adjust the size by specifying the `-m` parameter of the perf command.
>>
>> -6. Decoding
>> +7. Decoding
>>    -----------
>>
>>    You can decode the traced data with `perf report -D` command (currently
>> diff --git a/drivers/hwtracing/ptt/hisi_ptt.c b/drivers/hwtracing/ptt/hisi_ptt.c
>> index 94c371c49135..1696c30ac4c9 100644
>> --- a/drivers/hwtracing/ptt/hisi_ptt.c
>> +++ b/drivers/hwtracing/ptt/hisi_ptt.c
>> @@ -233,6 +233,10 @@ static int hisi_ptt_trace_start(struct hisi_ptt *hisi_ptt)
>>         val |= FIELD_PREP(HISI_PTT_TRACE_CTRL_TARGET_SEL, hisi_ptt->trace_ctrl.filter);
>>         if (!hisi_ptt->trace_ctrl.is_port)
>>                 val |= HISI_PTT_TRACE_CTRL_FILTER_MODE;
>> +     if (!ctrl->pattern)
>> +             val |= HISI_PTT_TRACE_CTRL_PATTERN;
>> +     else
>> +             val &= ~HISI_PTT_TRACE_CTRL_PATTERN;
> 
> Hi Sizhe,
> 
> This hunk seems not able to be applied to mainstream cleanly, otherwise
> this series LGTM.
> 
> Reviewed-by: Yushan Wang <wangyushan12@huawei.com>
> 
Hi Yushan,

I will fix it in v3. Thanks for your Reviewed-by tag.

Regards,
Sizhe >>
>>
>>         /* Start the Trace */
>>         val |= HISI_PTT_TRACE_CTRL_EN;
>> @@ -805,12 +809,14 @@ PMU_FORMAT_ATTR(filter,         "config:0-19");
>>    PMU_FORMAT_ATTR(direction,   "config:20-23");
>>    PMU_FORMAT_ATTR(type,                "config:24-31");
>>    PMU_FORMAT_ATTR(format,              "config:32-35");
>> +PMU_FORMAT_ATTR(pattern,             "config:36-39");
>>
>>    static struct attribute *hisi_ptt_pmu_format_attrs[] = {
>>         &format_attr_filter.attr,
>>         &format_attr_direction.attr,
>>         &format_attr_type.attr,
>>         &format_attr_format.attr,
>> +     &format_attr_pattern.attr,
>>         NULL
>>    };
>>
> 
> [...]



  reply	other threads:[~2026-09-02  3:31 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-27 14:04 [PATCH v2 0/8] Enhance TLP packet decoder with field-level parsing and versioning Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 1/8] perf hisi-ptt: Abstract trace data buf and offset Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 2/8] perf hisi-ptt: Complete the field names for 4DW and 8DW packets Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 3/8] perf hisi-ptt: Extract the raw data printing part Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 4/8] perf hisi-ptt: Merge 4DW and 8DW HEAD0 printing Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 5/8] perf hisi-ptt: Add parsing of supported message types Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 6/8] perf hisi-ptt: Add field-level parsing for header DW2/DW3 Sizhe Liu
2026-08-27 14:04 ` [PATCH v2 7/8] hwtracing: hisi_ptt: Add pattern PMU config for trace format selection Sizhe Liu
2026-09-01  1:31   ` Yushan Wang
2026-09-02  3:30     ` Sizhe Liu [this message]
2026-08-27 14:04 ` [PATCH v2 8/8] perf hisi-ptt: Pass pattern version to decoder for compatibility Sizhe Liu

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=08e19f22-f0e7-4c79-8938-110e5150b507@huawei.com \
    --to=liusizhe5@huawei.com \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=jic23@kernel.org \
    --cc=john.g.garry@oracle.com \
    --cc=jolsa@kernel.org \
    --cc=leo.yan@linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=mark.rutland@arm.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=mike.leach@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=prime.zeng@hisilicon.com \
    --cc=rostedt@goodmis.org \
    --cc=skhan@linuxfoundation.org \
    --cc=wangyushan12@huawei.com \
    --cc=will@kernel.org \
    --cc=wuzongyu1@huawei.com \
    --cc=yangyccccc@gmail.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