Re: [PATCH v4 0/8] Enhance TLP packet decoder with field-level parsing and versioning

From: Sizhe Liu

Date: Fri Sep 11 2026 - 02:48:40 EST


On 2026/9/9 5:02, Arnaldo Carvalho de Melo wrote:
On Tue, Sep 08, 2026 at 10:05:01PM +0800, Sizhe Liu wrote:
The original hisi-ptt-decoder only prints raw hex values with
generic field names for DW0/DW1/DW2/DW3, without classifying TLP
types or decoding DW0/DW1/DW2/DW3 fields according to the hardware-
defined packet format.

This series enhances the HiSilicon PTT (PCIe Trace and Tuning) packet
decoder in perf tool to provide detailed field-level parsing of TLP
headers based on message type, and adds a versioning mechanism for
backward compatibility both in hisi_ptt driver and perf tool.

Series is sashiko clean by now, has a Reviewed-by, but it touches both
kernel and tools, I wouldn't have a problem if it was processed by whoever
maintains the kernel part.

- Arnaldo


Hi Suzuki,

The series is now Sashiko-clean and has Reviewed-by tags. It touches both
driver and tools. Arnaldo is fine with the tools part. Would you mind
reviewing the driver part and picking it up through your tree if it looks good?

If there are any changes needed, please let me know.

Link: https://lore.kernel.org/all/20260908140509.2485649-1-liusizhe5@xxxxxxxxxx/

Thanks for your time!
Sizhe

--- Changes in v4: - Add missing space in hisi-ptt.rst (Sashiko). -
Widen the pattern bit field in struct hisi_ptt_trace_ctrl (Sashiko). - Add protocol defined TLP header length parsing in patch 05/08. -
Add MRd and DMRr message types parsing in patch 05/08. - Add comment
for enum hisi_ptt_pkt_msg_type in patch 05/08. - Add DW0 and DW1
fields analysing in patch 06/08. - Refine bit-fields parsing of DW0/
DW1/DW2/DW3 based on different requests in patch 06/08. - Refine the
description of pattern=1 in the document in patch 07/08. - Extract
the bit-field printing of v1 version into functions in patch 08/08. -
Link to v3: https://lore.kernel.org/linux-
pci/20260903075241.1445338-1-liusizhe5@xxxxxxxxxx/

Changes in v3: - Add explicit inclusion of <stdbool.h> (Sashiko). -
Make patch 07/08 apply cleanly to mainline (Yushan). - Pick up the
reviewed-by tag (Yushan). - Link to v2: https://lore.kernel.org/
linux-pci/20260827140442.2031128-1-liusizhe5@xxxxxxxxxx/

Changes in v2: - Split patch 01/10 and patch 02/10 from series v1
into independent patch series for backporting (Bjorn). - Use bitwise
operations instead of C bitfields for cross-platform cases (Sashiko).
- Add `pattern` parameter in hisi_ptt driver for layout
compatibility. - Link to v1: https://lore.kernel.org/linux-
pci/20260604075005.2219785-1-liusizhe5@xxxxxxxxxx/

--- Sizhe Liu (8): perf hisi-ptt: Abstract trace data buf and offset perf hisi-ptt: Complete the field names for 4DW and 8DW packets perf
hisi-ptt: Extract the raw data printing part perf hisi-ptt: Merge
4DW and 8DW HEAD0 printing perf hisi-ptt: Add parsing of supported
message types and proto length perf hisi-ptt: Add field-level
parsing for header DW0/DW1/DW2/DW3 hwtracing: hisi_ptt: Add pattern
PMU config for trace format selection perf hisi-ptt: Pass pattern
version to decoder for compatibility

Documentation/trace/hisi-ptt.rst | 26 +- drivers/
hwtracing/ptt/hisi_ptt.c | 25 +- drivers/hwtracing/ptt/
hisi_ptt.h | 4 + tools/perf/arch/arm64/util/hisi-
ptt.c | 18 + .../hisi-ptt-decoder/hisi-ptt-pkt-decoder.c
| 593 ++++++++++++++++-- .../hisi-ptt-decoder/hisi-ptt-pkt-
decoder.h | 241 ++++++- tools/perf/util/hisi-
ptt.c | 51 +- tools/perf/util/hisi-
ptt.h | 9 +- 8 files changed, 872
insertions(+), 95 deletions(-)

-- 2.33.0