[PATCH 3/3] perf, tools, report: Set up samples correctly in hierarchy mode

From: Andi Kleen
Date: Mon Mar 11 2019 - 23:52:40 EST


From: Andi Kleen <ak@xxxxxxxxxxxxxxx>

In hierarchy mode the res samples need to be cloned from the parent
entry. Copy them in this case. This fixes res sample browsing
with --hierarchy.

Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
---
tools/perf/util/hist.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 1f230285d78a..dcf24581dfbd 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -437,8 +437,15 @@ static int hist_entry__init(struct hist_entry *he,
}

if (symbol_conf.res_sample) {
- he->res_samples = calloc(sizeof(struct res_sample),
- symbol_conf.res_sample);
+ if (he->res_samples) {
+ he->res_samples = memdup(he->res_samples,
+ sizeof(struct res_sample) *
+ symbol_conf.res_sample);
+ } else {
+ he->res_samples = calloc(sizeof(struct res_sample),
+ symbol_conf.res_sample);
+ he->num_res = 0;
+ }
if (!he->res_samples)
goto err_srcline;
}
--
2.20.1