mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint
@ 2014-11-04 10:55 Jiri Olsa
  2014-11-07  5:32 ` [tip:perf/core] perf evsel: " tip-bot for Jiri Olsa
  0 siblings, 1 reply; 3+ messages in thread
From: Jiri Olsa @ 2014-11-04 10:55 UTC (permalink / raw)
  To: linux-kernel
  Cc: Jiri Olsa, Steven Rostedt, Corey Ashford, David Ahern,
	Frederic Weisbecker, Ingo Molnar, Namhyung Kim, Paul Mackerras,
	Peter Zijlstra, Arnaldo Carvalho de Melo

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.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 2f9e68025ede..12b4396c7175 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -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);
 }
-- 
1.9.3


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [tip:perf/core] perf evsel: Do not call pevent_free_format when deleting tracepoint
  2014-11-04 10:55 [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint Jiri Olsa
@ 2014-11-07  5:32 ` tip-bot for Jiri Olsa
  0 siblings, 0 replies; 3+ messages in thread
From: tip-bot for Jiri Olsa @ 2014-11-07  5:32 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: jolsa, acme, hpa, tglx, fweisbec, a.p.zijlstra, dsahern,
	linux-kernel, rostedt, cjashfor, mingo, namhyung, paulus

Commit-ID:  daa01794a4a36a1da1b09a529adec0c8c0b94ab2
Gitweb:     http://git.kernel.org/tip/daa01794a4a36a1da1b09a529adec0c8c0b94ab2
Author:     Jiri Olsa <jolsa@kernel.org>
AuthorDate: Tue, 4 Nov 2014 11:55:38 +0100
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
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.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1415098538-1512-1-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 2f9e680..12b4396 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -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);
 }

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint
  2014-10-13 15:43 ` Liang, Kan
@ 2014-10-14 14:02   ` Jiri Olsa
  0 siblings, 0 replies; 3+ messages in thread
From: Jiri Olsa @ 2014-10-14 14:02 UTC (permalink / raw)
  To: Liang, Kan; +Cc: linux-kernel, ak, acme, Steven Rostedt, Namhyung Kim

On Mon, Oct 13, 2014 at 03:43:18PM +0000, Liang, Kan wrote:
> Hi Jolsa,
> 
> Does the new patch set work on your machine?
> I tested the V8 patch set on haswell, ivybridge and Romley platform,
> I cannot reproduce the issue you mentioned.
> Could you please try the latest V8 patch? 

actually it still does, but it looks like another issue,
I think we need patch below.. I'll now check rest of your
patches.

Steven,
does the patch below make sense to you? I dont think we want
to allow freeing of the event_format that pevent keeps in
the array.

jirka


---
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

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

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/evsel.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index e0868a901c4a..f5cc101428be 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -824,8 +824,6 @@ void perf_evsel__delete(struct perf_evsel *evsel)
 	perf_evsel__exit(evsel);
 	close_cgroup(evsel->cgrp);
 	zfree(&evsel->group_name);
-	if (evsel->tp_format)
-		pevent_free_format(evsel->tp_format);
 	zfree(&evsel->name);
 	free(evsel);
 }
-- 
1.9.3



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-07  5:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-04 10:55 [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint Jiri Olsa
2014-11-07  5:32 ` [tip:perf/core] perf evsel: " tip-bot for Jiri Olsa
  -- strict thread matches above, loose matches on Subject: below --
2014-10-07 15:08 [PATCH V8 0/4] perf tools: pmu event new style format fix kan.liang
2014-10-13 15:43 ` Liang, Kan
2014-10-14 14:02   ` [PATCH] perf tools: Do not call pevent_free_format when deleting tracepoint Jiri Olsa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome