78 lines
3.3 KiB
Diff
78 lines
3.3 KiB
Diff
From d70a55abc4d87a2e54dbb1dd7e53fae51107f647 Mon Sep 17 00:00:00 2001
|
|
From: Ian Rogers <irogers@google.com>
|
|
Date: Wed, 23 Sep 2020 14:06:55 -0700
|
|
Subject: [PATCH 195/201] perf test: Fix msan uninitialized use.
|
|
|
|
mainline inclusion
|
|
from mainline-v5.10-rc1
|
|
commit a55b7bb1c14662490689e094964ecc5387bb2b55
|
|
category: bugfix
|
|
bugzilla: https://gitee.com/openeuler/kernel/issues/I8C0CX
|
|
|
|
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a55b7bb1c14662490689e094964ecc5387bb2b55
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
Ensure 'st' is initialized before an error branch is taken.
|
|
Fixes test "67: Parse and process metrics" with LLVM msan:
|
|
|
|
==6757==WARNING: MemorySanitizer: use-of-uninitialized-value
|
|
#0 0x5570edae947d in rblist__exit tools/perf/util/rblist.c:114:2
|
|
#1 0x5570edb1c6e8 in runtime_stat__exit tools/perf/util/stat-shadow.c:141:2
|
|
#2 0x5570ed92cfae in __compute_metric tools/perf/tests/parse-metric.c:187:2
|
|
#3 0x5570ed92cb74 in compute_metric tools/perf/tests/parse-metric.c:196:9
|
|
#4 0x5570ed92c6d8 in test_recursion_fail tools/perf/tests/parse-metric.c:318:2
|
|
#5 0x5570ed92b8c8 in test__parse_metric tools/perf/tests/parse-metric.c:356:2
|
|
#6 0x5570ed8de8c1 in run_test tools/perf/tests/builtin-test.c:410:9
|
|
#7 0x5570ed8ddadf in test_and_print tools/perf/tests/builtin-test.c:440:9
|
|
#8 0x5570ed8dca04 in __cmd_test tools/perf/tests/builtin-test.c:661:4
|
|
#9 0x5570ed8dbc07 in cmd_test tools/perf/tests/builtin-test.c:807:9
|
|
#10 0x5570ed7326cc in run_builtin tools/perf/perf.c:313:11
|
|
#11 0x5570ed731639 in handle_internal_command tools/perf/perf.c:365:8
|
|
#12 0x5570ed7323cd in run_argv tools/perf/perf.c:409:2
|
|
#13 0x5570ed731076 in main tools/perf/perf.c:539:3
|
|
|
|
Fixes: commit f5a56570a3f2 ("perf test: Fix memory leaks in parse-metric test")
|
|
Signed-off-by: Ian Rogers <irogers@google.com>
|
|
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
|
|
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
|
|
Cc: Jiri Olsa <jolsa@redhat.com>
|
|
Cc: Mark Rutland <mark.rutland@arm.com>
|
|
Cc: Namhyung Kim <namhyung@kernel.org>
|
|
Cc: Peter Zijlstra <peterz@infradead.org>
|
|
Cc: Stephane Eranian <eranian@google.com>
|
|
Cc: clang-built-linux@googlegroups.com
|
|
Link: http://lore.kernel.org/lkml/20200923210655.4143682-1-irogers@google.com
|
|
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
|
|
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
|
|
|
|
Conflicts:
|
|
tools/perf/tests/parse-metric.c
|
|
---
|
|
tools/perf/tests/parse-metric.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/tools/perf/tests/parse-metric.c b/tools/perf/tests/parse-metric.c
|
|
index 483271895815..7d63eaa592e2 100644
|
|
--- a/tools/perf/tests/parse-metric.c
|
|
+++ b/tools/perf/tests/parse-metric.c
|
|
@@ -157,6 +157,7 @@ static int __compute_metric(const char *name, struct value *vals,
|
|
}
|
|
|
|
perf_evlist__set_maps(evlist, cpus, NULL);
|
|
+ runtime_stat__init(&st);
|
|
|
|
/* Parse the metric into metric_events list. */
|
|
err = metricgroup__parse_groups_test(evlist, &map, name,
|
|
@@ -170,7 +171,6 @@ static int __compute_metric(const char *name, struct value *vals,
|
|
goto out;
|
|
|
|
/* Load the runtime stats with given numbers for events. */
|
|
- runtime_stat__init(&st);
|
|
load_runtime_stat(&st, evlist, vals);
|
|
|
|
/* And execute the metric */
|
|
--
|
|
2.27.0
|
|
|