From: Jiri Olsa <jolsa@kernel.org>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: lkml <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Michael Petlan <mpetlan@redhat.com>,
Ian Rogers <irogers@google.com>,
Stephane Eranian <eranian@google.com>,
Andi Kleen <ak@linux.intel.com>
Subject: [PATCH 10/13] perf tools: Release metric_events rblist
Date: Tue, 2 Jun 2020 13:50:52 +0200 [thread overview]
Message-ID: <20200602115055.1168446-11-jolsa@kernel.org> (raw)
In-Reply-To: <20200602115055.1168446-1-jolsa@kernel.org>
We don't release metric_events rblist, add the missing
delete hook and call the release before leaving cmd_stat.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/builtin-stat.c | 1 +
tools/perf/util/metricgroup.c | 19 +++++++++++++++++++
tools/perf/util/metricgroup.h | 1 +
3 files changed, 21 insertions(+)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 8a0c470dd92b..6d45b9783b73 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -2252,6 +2252,7 @@ int cmd_stat(int argc, const char **argv)
evlist__delete(evsel_list);
+ metricgroup__rblist_exit(&stat_config.metric_events);
runtime_stat_delete(&stat_config);
return status;
diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
index fe33fee7f6ad..1b80a7901388 100644
--- a/tools/perf/util/metricgroup.c
+++ b/tools/perf/util/metricgroup.c
@@ -76,11 +76,30 @@ static struct rb_node *metric_event_new(struct rblist *rblist __maybe_unused,
return &me->nd;
}
+static void metric_event_delete(struct rblist *rblist __maybe_unused,
+ struct rb_node *rb_node)
+{
+ struct metric_event *me = container_of(rb_node, struct metric_event, nd);
+ struct metric_expr *expr, *tmp;
+
+ list_for_each_entry_safe(expr, tmp, &me->head, nd) {
+ free(expr);
+ }
+
+ free(me);
+}
+
static void metricgroup__rblist_init(struct rblist *metric_events)
{
rblist__init(metric_events);
metric_events->node_cmp = metric_event_cmp;
metric_events->node_new = metric_event_new;
+ metric_events->node_delete = metric_event_delete;
+}
+
+void metricgroup__rblist_exit(struct rblist *metric_events)
+{
+ rblist__exit(metric_events);
}
struct egroup {
diff --git a/tools/perf/util/metricgroup.h b/tools/perf/util/metricgroup.h
index 426c824e20bf..8315bd1a7da4 100644
--- a/tools/perf/util/metricgroup.h
+++ b/tools/perf/util/metricgroup.h
@@ -47,4 +47,5 @@ void metricgroup__print(bool metrics, bool groups, char *filter,
bool raw, bool details);
bool metricgroup__has_metric(const char *metric);
int arch_get_runtimeparam(void);
+void metricgroup__rblist_exit(struct rblist *metric_events);
#endif
--
2.25.4
next prev parent reply other threads:[~2020-06-02 11:51 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-02 11:50 [PATCHv2 00/13] perf tests: Add metrics tests Jiri Olsa
2020-06-02 11:50 ` [PATCH 01/13] perf tools: Add fake pmu support Jiri Olsa
2020-06-02 11:50 ` [PATCH 02/13] perf tools: Add fake_pmu bool to parse_events interface Jiri Olsa
2020-06-02 11:50 ` [PATCH 03/13] perf tests: Factor check_parse_id function Jiri Olsa
2020-06-02 11:50 ` [PATCH 04/13] perf tests: Add another metric parsing test Jiri Olsa
2020-06-02 17:58 ` Ian Rogers
2020-06-02 19:03 ` Jiri Olsa
2020-06-02 19:08 ` Jiri Olsa
2020-06-02 20:30 ` Ian Rogers
2020-06-02 11:50 ` [PATCH 05/13] perf tools: Factor out parse_groups function Jiri Olsa
2020-06-02 11:50 ` [PATCH 06/13] perf tools: Add fake_pmu to parse_events function Jiri Olsa
2020-06-02 11:50 ` [PATCH 07/13] perf tools: Add map " Jiri Olsa
2020-06-02 11:50 ` [PATCH 08/13] perf tools: Add metricgroup__parse_groups_test function Jiri Olsa
2020-06-02 11:50 ` [PATCH 09/13] perf tools: Factor out prepare_metric function Jiri Olsa
2020-06-02 11:50 ` Jiri Olsa [this message]
2020-06-02 11:50 ` [PATCH 11/13] perf tools: Add test_generic_metric function Jiri Olsa
2020-06-02 11:50 ` [PATCH 12/13] perf tests: Add parse metric test for ipc metric Jiri Olsa
2020-06-02 11:50 ` [PATCH 13/13] perf tests: Add parse metric test for frontend metric Jiri Olsa
2020-06-02 18:10 ` [PATCHv2 00/13] perf tests: Add metrics tests Ian Rogers
2020-06-02 21:47 [PATCHv3 " Jiri Olsa
2020-06-02 21:47 ` [PATCH 10/13] perf tools: Release metric_events rblist Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200602115055.1168446-11-jolsa@kernel.org \
--to=jolsa@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=eranian@google.com \
--cc=irogers@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mpetlan@redhat.com \
--cc=namhyung@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).