[PATCH v9 00/16] perf arm-spe: Refactor decoding & dumping flow
From: Leo Yan
Date: Thu Nov 19 2020 - 10:24:59 EST
This is patch set v9 for refactoring Arm SPE trace decoding and dumping.
According to comments and suggestions from patch set v8, it squashs the
two patches into single one: "perf arm-spe: Refactor printing string to
buffer" and "perf arm-spe: Consolidate arm_spe_pkt_desc()'s return
value".
In the patch 01/16, it renames the function arm_spe_pkt_snprintf() to
arm_spe_pkt_out_string(), since the function is not the same semantics
with snprintf(), the renaming can avoid confusion.
This patch set is cleanly applied on the top of perf/core branch
with commit 29396cd573da ("perf expr: Force encapsulation on
expr_id_data").
This patch set has been tested on Hisilicon D06 platform with commands
"perf report -D" and "perf script", compared the decoding results
between with this patch set and without this patch set, "diff" tool
shows the result as expected.
I also manually built the patches for arm/arm64/x86_64 and verfied
every single patch can build successfully.
Changes from v8:
- Squashed the two patches "perf arm-spe: Refactor printing string to
buffer" and "perf arm-spe: Consolidate arm_spe_pkt_desc()'s return
value" (Dave);
- Fixed the condition for vsnprintf()'s overrun to
"if ((size_t)ret >= *blen)" (Dave);
- Renamed function arm_spe_pkt_snprintf() to arm_spe_pkt_out_string()
(Dave/Arnaldo);
- Rebased on the latest perf/core branch.
Changes from v7:
- Changed to pass '&buf_len' for the last call arm_spe_pkt_snprintf() in
the patch 07/22 (Andre).
Changes from v6:
- Removed the redundant comma from the string in the patch 21/22 "perf
arm_spe: Decode memory tagging properties" (Dave);
- Refined the return value for arm_spe_pkt_desc(): returns 0 for
success, otherwise returns non zero for failures; handle error code at
the end of function arm_spe_pkt_desc(); this is accomplished in the
new patch 07/22 "perf arm-spe: Consolidate arm_spe_pkt_desc()'s
return value" (Dave).
Andre Przywara (1):
perf arm_spe: Decode memory tagging properties
Leo Yan (14):
perf arm-spe: Refactor printing string to buffer
perf arm-spe: Refactor packet header parsing
perf arm-spe: Add new function arm_spe_pkt_desc_addr()
perf arm-spe: Refactor address packet handling
perf arm_spe: Fixup top byte for data virtual address
perf arm-spe: Refactor context packet handling
perf arm-spe: Add new function arm_spe_pkt_desc_counter()
perf arm-spe: Refactor counter packet handling
perf arm-spe: Add new function arm_spe_pkt_desc_event()
perf arm-spe: Refactor event type handling
perf arm-spe: Remove size condition checking for events
perf arm-spe: Add new function arm_spe_pkt_desc_op_type()
perf arm-spe: Refactor operation packet handling
perf arm-spe: Add more sub classes for operation packet
Wei Li (1):
perf arm-spe: Add support for ARMv8.3-SPE
.../util/arm-spe-decoder/arm-spe-decoder.c | 54 +-
.../util/arm-spe-decoder/arm-spe-decoder.h | 17 -
.../arm-spe-decoder/arm-spe-pkt-decoder.c | 542 ++++++++++--------
.../arm-spe-decoder/arm-spe-pkt-decoder.h | 122 +++-
tools/perf/util/arm-spe.c | 2 +-
5 files changed, 455 insertions(+), 282 deletions(-)
--
2.17.1