[PATCH v9 00/16] perf arm-spe: Refactor decoding & dumping flow

Leo Yan leo.yan at linaro.org
Thu Nov 19 10:24:25 EST 2020


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




More information about the linux-arm-kernel mailing list