Re: [PATCH v8 00/22] perf arm-spe: Refactor decoding & dumping flow
From: Arnaldo Carvalho de Melo
Date: Wed Nov 11 2020 - 11:10:57 EST
Em Wed, Nov 11, 2020 at 03:11:27PM +0800, Leo Yan escreveu:
> This is patch set v8 for refactoring Arm SPE trace decoding and dumping.
>
> This version addresses Andre's comment to pass parameter '&buf_len' at
> the last call arm_spe_pkt_snprintf() in the function arm_spe_pkt_desc().
>
> This patch set is cleanly applied on the top of perf/core branch
> with commit 644bf4b0f7ac ("perf jevents: Add test for arch std events").
>
> I retested this patch set 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.
With the patches I applied I'm getting:
util/arm-spe-decoder/arm-spe-pkt-decoder.c: In function 'arm_spe_pkt_desc':
util/arm-spe-decoder/arm-spe-pkt-decoder.c:410:3: error: left shift count >= width of type [-Werror]
case 1: ns = !!(packet->payload & NS_FLAG);
^
util/arm-spe-decoder/arm-spe-pkt-decoder.c:411:4: error: left shift count >= width of type [-Werror]
el = (packet->payload & EL_FLAG) >> 61;
^
util/arm-spe-decoder/arm-spe-pkt-decoder.c:411:4: error: left shift count >= width of type [-Werror]
util/arm-spe-decoder/arm-spe-pkt-decoder.c:416:3: error: left shift count >= width of type [-Werror]
case 3: ns = !!(packet->payload & NS_FLAG);
^
CC /tmp/build/perf/util/arm-spe-decoder/arm-spe-decoder.o
On:
16 11.70 android-ndk:r12b-arm : FAIL arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
17 11.32 android-ndk:r15c-arm : FAIL arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
That were building ok before, builds still under way, perhaps its just
on these old systems...
- Arnaldo
> 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).
>
> Changes from v5:
> - Directly bail out arm_spe_pkt_snprintf() if any error occurred
> (Andre).
>
> Changes from v4:
> - Implemented a cumulative error for arm_spe_pkt_snprintf() and changed
> to condense code for printing strings (Dave);
> - Changed to check payload bits [55:52] for parse kernel address
> (Andre).
>
> Changes from v3:
> - Refined arm_spe_payload_len() and removed macro SPE_HEADER_SZ()
> (Andre);
> - Refined packet header index macros (Andre);
> - Added patch "perf arm_spe: Fixup top byte for data virtual address" to
> fixup the data virtual address for 64KB pages and refined comments for
> the fixup (Andre);
> - Added Andre's review tag (using "b4 am" command);
> - Changed the macros to SPE_PKT_IS_XXX() format to check operation types
> (Andre).
>
>
> Andre Przywara (1):
> perf arm_spe: Decode memory tagging properties
>
> Leo Yan (20):
> perf arm-spe: Include bitops.h for BIT() macro
> perf arm-spe: Fix a typo in comment
> perf arm-spe: Refactor payload size calculation
> perf arm-spe: Refactor arm_spe_get_events()
> perf arm-spe: Fix packet length handling
> perf arm-spe: Refactor printing string to buffer
> perf arm-spe: Consolidate arm_spe_pkt_desc()'s return value
> 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 | 59 +-
> .../util/arm-spe-decoder/arm-spe-decoder.h | 17 -
> .../arm-spe-decoder/arm-spe-pkt-decoder.c | 601 ++++++++++--------
> .../arm-spe-decoder/arm-spe-pkt-decoder.h | 122 +++-
> tools/perf/util/arm-spe.c | 2 +-
> 5 files changed, 479 insertions(+), 322 deletions(-)
>
> --
> 2.17.1
>
--
- Arnaldo