71 lines
2.6 KiB
Diff
71 lines
2.6 KiB
Diff
From 3c5dcbec06d52582a33bd142000fe41581d79d04 Mon Sep 17 00:00:00 2001
|
|
From: Leo Yan <leo.yan@linaro.org>
|
|
Date: Fri, 31 Dec 2021 13:32:00 +0800
|
|
Subject: [PATCH 04/21] perf arm-spe: Refactor arm_spe_get_events()
|
|
|
|
mainline inclusion
|
|
from mainline-v5.11-rc1
|
|
commit b65577baf482909225c79d8a6bad44d2a62751f4
|
|
category: feature
|
|
bugzilla: https://gitee.com/openeuler/kernel/issues/I4NGPV
|
|
CVE: NA
|
|
|
|
-------------------------------------------------
|
|
|
|
In function arm_spe_get_events(), the event packet's 'index' is assigned
|
|
as payload length, but the flow is not directive: it firstly gets the
|
|
packet length from the return value of arm_spe_get_payload(), the value
|
|
includes header length (1) and payload length:
|
|
|
|
int ret = arm_spe_get_payload(buf, len, packet);
|
|
|
|
and then reduces header length from packet length, so finally get the
|
|
payload length:
|
|
|
|
packet->index = ret - 1;
|
|
|
|
To simplify the code, this patch directly assigns payload length to
|
|
event packet's index; and at the end it calls arm_spe_get_payload() to
|
|
return the payload value.
|
|
|
|
Signed-off-by: Leo Yan <leo.yan@linaro.org>
|
|
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
|
|
Link: https://lore.kernel.org/r/20201111071149.815-5-leo.yan@linaro.org
|
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
Signed-off-by: Wei Li <liwei391@huawei.com>
|
|
Reviewed-by: Yang Jihong <yangjihong1@huawei.com>
|
|
Signed-off-by: Zheng Zengkai <zhengzengkai@huawei.com>
|
|
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
|
|
---
|
|
tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c | 6 ++----
|
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c
|
|
index a8eb7be189ec..57904da89db1 100644
|
|
--- a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c
|
|
+++ b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c
|
|
@@ -136,8 +136,6 @@ static int arm_spe_get_timestamp(const unsigned char *buf, size_t len,
|
|
static int arm_spe_get_events(const unsigned char *buf, size_t len,
|
|
struct arm_spe_pkt *packet)
|
|
{
|
|
- int ret = arm_spe_get_payload(buf, len, packet);
|
|
-
|
|
packet->type = ARM_SPE_EVENTS;
|
|
|
|
/* we use index to identify Events with a less number of
|
|
@@ -145,9 +143,9 @@ static int arm_spe_get_events(const unsigned char *buf, size_t len,
|
|
* LLC-REFILL, and REMOTE-ACCESS events are identified if
|
|
* index > 1.
|
|
*/
|
|
- packet->index = ret - 1;
|
|
+ packet->index = arm_spe_payload_len(buf[0]);
|
|
|
|
- return ret;
|
|
+ return arm_spe_get_payload(buf, len, packet);
|
|
}
|
|
|
|
static int arm_spe_get_data_source(const unsigned char *buf, size_t len,
|
|
--
|
|
2.27.0
|
|
|