Skip to contentSkip to conversation

perf tools: Do not call pevent_free_format when deleting tracepoint

PATCH New Jiri Olsa 2 participants 2 messages Nov 4, 2014 – Nov 7, 2014 perf events

lore
Share & tools
lore

Jiri Olsa

author reviewer
#0 lore raw

PATCH 1/1 perf tools: Do not call pevent_free_format when deleting tracepoint

The libtraceevent library's main handle 'struct pevent' holds pointers of every event that was added to it via functions:
pevent_parse_format
pevent_parse_event

We can't release struct event_format (call pevent_free_format) separately, because that breaks that pointers array mentioned above and another add_event call could end up with segfault.

All added events are released within the handle cleanup in pevent_free.

Cc Steven Rostedt <[email protected]>
Cc Corey Ashford <[email protected]>
Cc David Ahern <[email protected]>
Cc Frederic Weisbecker <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/util/evsel.c | 2 --
 1 file changed, 2 deletions(-)
tools/perf/util/evsel.c +0 -2
index 2f9e68025ede..12b4396c7175 100644
@@ -853,8 +853,6 @@ void perf_evsel__exit(struct perf_evsel *evsel)
 	perf_evsel__free_id(evsel);
 	close_cgroup(evsel->cgrp);
 	zfree(&evsel->group_name);
-	if (evsel->tp_format)
-		pevent_free_format(evsel->tp_format);
 	zfree(&evsel->name);
 	perf_evsel__object.fini(evsel);
 }
Signature · 1 line
1.9.3
#1 lore raw

[tip:perf/core] perf evsel: Do not call pevent_free_format when deleting tracepoint

perf evsel: Do not call pevent_free_format when deleting tracepoint
Commit-ID:  daa01794a4a36a1da1b09a529adec0c8c0b94ab2
Gitweb:     http://git.kernel.org/tip/daa01794a4a36a1da1b09a529adec0c8c0b94ab2
Author:     Jiri Olsa <[email protected]>
AuthorDate: Tue, 4 Nov 2014 11:55:38 +0100
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Thu, 6 Nov 2014 17:47:14 -0300

perf evsel: Do not call pevent_free_format when deleting tracepoint

The libtraceevent library's main handle 'struct pevent' holds pointers of every event that was added to it via functions:

pevent_parse_format
pevent_parse_event

We can't release struct event_format (call pevent_free_format) separately, because that breaks that pointers array mentioned above and another add_event call could end up with segfault.

All added events are released within the handle cleanup in pevent_free.

Cc Corey Ashford <[email protected]>
Cc David Ahern <[email protected]>
Cc Frederic Weisbecker <[email protected]>
Cc Ingo Molnar <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Paul Mackerras <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Steven Rostedt <[email protected]>
---
 tools/perf/util/evsel.c | 2 --
 1 file changed, 2 deletions(-)
tools/perf/util/evsel.c +0 -2
index 2f9e680..12b4396 100644
@@ -853,8 +853,6 @@ void perf_evsel__exit(struct perf_evsel *evsel)
 	perf_evsel__free_id(evsel);
 	close_cgroup(evsel->cgrp);
 	zfree(&evsel->group_name);
-	if (evsel->tp_format)
-		pevent_free_format(evsel->tp_format);
 	zfree(&evsel->name);
 	perf_evsel__object.fini(evsel);
 }