perf tools: Do not call pevent_free_format when deleting tracepoint
Jiri Olsa
reviewerPATCH 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.
--- tools/perf/util/evsel.c | 2 -- 1 file changed, 2 deletions(-)
tools/perf/util/evsel.c +0 -2
@@ -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
tip-bot for Jiri Olsa
merge bot[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.
--- tools/perf/util/evsel.c | 2 -- 1 file changed, 2 deletions(-)
tools/perf/util/evsel.c +0 -2
@@ -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); }