mbox series

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

Message ID 20201119152441.6972-1-leo.yan@linaro.org (mailing list archive)
Headers show
Series perf arm-spe: Refactor decoding & dumping flow | expand

Message

Leo Yan Nov. 19, 2020, 3:24 p.m. UTC
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(-)

Comments

Will Deacon Nov. 25, 2020, 2:17 p.m. UTC | #1
On Thu, Nov 19, 2020 at 11:24:25PM +0800, Leo Yan wrote:
> 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.

I'm unable to test this, so I'm please that you can! Anyway, it all looks
fine from a quick look:

Acked-by: Will Deacon <will@kernel.org>

so I think Arnaldo can pick this up when he's ready.

Cheers,

Will
Arnaldo Carvalho de Melo Nov. 26, 2020, 12:10 p.m. UTC | #2
Em Wed, Nov 25, 2020 at 02:17:56PM +0000, Will Deacon escreveu:
> On Thu, Nov 19, 2020 at 11:24:25PM +0800, Leo Yan wrote:
> > 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.
> 
> I'm unable to test this, so I'm please that you can! Anyway, it all looks
> fine from a quick look:
> 
> Acked-by: Will Deacon <will@kernel.org>
> 
> so I think Arnaldo can pick this up when he's ready.

This is all ARM specific stuff, if you are good with it, I'll do just a
cursory look and apply.

- Arnaldo
Leo Yan Nov. 26, 2020, 2:30 p.m. UTC | #3
On Wed, Nov 25, 2020 at 02:17:56PM +0000, Will Deacon wrote:
> On Thu, Nov 19, 2020 at 11:24:25PM +0800, Leo Yan wrote:
> > This is patch set v9 for refactoring Arm SPE trace decoding and dumping.

[...]

> > I also manually built the patches for arm/arm64/x86_64 and verfied
> > every single patch can build successfully.
> 
> I'm unable to test this, so I'm please that you can! Anyway, it all looks
> fine from a quick look:
> 
> Acked-by: Will Deacon <will@kernel.org>
> 
> so I think Arnaldo can pick this up when he's ready.

Thanks for review, Will.

I will consider to enable automatic method (e.g. using container) for
the cross compilation perf tool with new patches.

Thanks,
Leo