Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1221853 > unrolled thread

[PATCH 1/3] perf probe: Free perf probe event in cleanup_perf_probe_events()

Started byNamhyung Kim <namhyung@kernel.org>
First post2015-09-10 04:40 +0200
Last post2015-09-16 09:30 +0200
Articles 10 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 1/3] perf probe: Free perf probe event in cleanup_perf_probe_events() Namhyung Kim <namhyung@kernel.org> - 2015-09-10 04:40 +0200
    [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers Namhyung Kim <namhyung@kernel.org> - 2015-09-10 04:40 +0200
      RE: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into  callers 平松雅巳 / HIRAMATU,MASAMI   <masami.hiramatsu.pt@hitachi.com> - 2015-09-10 15:00 +0200
        Re: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into  callers Namhyung Kim <namhyung@kernel.org> - 2015-09-11 18:00 +0200
          Re: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into  callers Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-14 20:20 +0200
    [PATCH 2/3] perf probe: Export init/exit_probe_symbol_maps() Namhyung Kim <namhyung@kernel.org> - 2015-09-10 04:40 +0200
      RE: [PATCH 2/3] perf probe: Export init/exit_probe_symbol_maps() 平松雅巳 / HIRAMATU,MASAMI   <masami.hiramatsu.pt@hitachi.com> - 2015-09-10 15:00 +0200
      [tip:perf/core] perf probe: Export init/exit_probe_symbol_maps() tip-bot for Namhyung Kim <tipbot@zytor.com> - 2015-09-16 09:30 +0200
    RE: [PATCH 1/3] perf probe: Free perf probe event in  cleanup_perf_probe_events() 平松雅巳 / HIRAMATU,MASAMI   <masami.hiramatsu.pt@hitachi.com> - 2015-09-10 11:00 +0200
    [tip:perf/core] perf probe:   Free perf_probe_event in cleanup_perf_probe_events() tip-bot for Namhyung Kim <tipbot@zytor.com> - 2015-09-16 09:30 +0200

#1221853 — [PATCH 1/3] perf probe: Free perf probe event in cleanup_perf_probe_events()

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-10 04:40 +0200
Subject[PATCH 1/3] perf probe: Free perf probe event in cleanup_perf_probe_events()
Message-ID<q6ZWi-59b-5@gated-at.bofh.it>
The cleanup_perf_probe_events() frees all resources related to a perf
probe event.  However it only freed resources in trace probe events, not
perf probe events.  So call clear_perf_probe_event() too.

Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reported-by: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/probe-event.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 5964eccbe94d..3d7d60cc6f16 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2792,6 +2792,7 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 			clear_probe_trace_event(&pevs[i].tevs[j]);
 		zfree(&pevs[i].tevs);
 		pevs[i].ntevs = 0;
+		clear_perf_probe_event(&pevs[i]);
 	}
 
 	exit_symbol_maps();
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1221858 — [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-10 04:40 +0200
Subject[PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers
Message-ID<q6ZWi-59b-15@gated-at.bofh.it>
In reply to#1221853
The init/exit_probe_symbol_maps() was a part of
convert_perf_probe_events() and cleanup_perf_probe_events().  But as
these functions can be called multiple times, it'd be better moving
init/exit functions out of them, so that it should be called only once.

Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/builtin-probe.c    |  5 +++++
 tools/perf/util/probe-event.c | 11 +++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index 2bec9c1ef2a3..94385ee89dc8 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -317,6 +317,10 @@ static int perf_add_probe_events(struct perf_probe_event *pevs, int npevs)
 	int i, k;
 	const char *event = NULL, *group = NULL;
 
+	ret = init_probe_symbol_maps(pevs->uprobes);
+	if (ret < 0)
+		return ret;
+
 	ret = convert_perf_probe_events(pevs, npevs);
 	if (ret < 0)
 		goto out_cleanup;
@@ -354,6 +358,7 @@ static int perf_add_probe_events(struct perf_probe_event *pevs, int npevs)
 
 out_cleanup:
 	cleanup_perf_probe_events(pevs, npevs);
+	exit_probe_symbol_maps();
 	return ret;
 }
 
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 64e15cba7223..2b78e8f19b45 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2746,10 +2746,6 @@ int convert_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 {
 	int i, ret;
 
-	ret = init_probe_symbol_maps(pevs->uprobes);
-	if (ret < 0)
-		return ret;
-
 	/* Loop 1: convert all events */
 	for (i = 0; i < npevs; i++) {
 		/* Init kprobe blacklist if needed */
@@ -2794,20 +2790,23 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 		pevs[i].ntevs = 0;
 		clear_perf_probe_event(&pevs[i]);
 	}
-
-	exit_probe_symbol_maps();
 }
 
 int add_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 {
 	int ret;
 
+	ret = init_probe_symbol_maps(pevs->uprobes);
+	if (ret < 0)
+		return ret;
+
 	ret = convert_perf_probe_events(pevs, npevs);
 	if (ret == 0)
 		ret = apply_perf_probe_events(pevs, npevs);
 
 	cleanup_perf_probe_events(pevs, npevs);
 
+	exit_probe_symbol_maps();
 	return ret;
 }
 
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1222172 — RE: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-09-10 15:00 +0200
SubjectRE: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers
Message-ID<q79Ci-1Rv-7@gated-at.bofh.it>
In reply to#1221858
DQoNCi0tIA0KTWFzYW1pIEhJUkFNQVRTVQ0KTGludXggVGVjaG5vbG9neSBSZXNlYXJjaCBDZW50
ZXIsIFN5c3RlbSBQcm9kdWN0aXZpdHkgUmVzZWFyY2ggRGVwdC4NCkNlbnRlciBmb3IgVGVjaG5v
bG9neSBJbm5vdmF0aW9uIC0gU3lzdGVtcyBFbmdpbmVlcmluZw0KSGl0YWNoaSwgTHRkLiwgUmVz
ZWFyY2ggJiBEZXZlbG9wbWVudCBHcm91cA0KRS1tYWlsOiBtYXNhbWkuaGlyYW1hdHN1LnB0QGhp
dGFjaGkuY29tDQoNCg0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+RnJvbTogTmFtaHl1
bmcgS2ltIFttYWlsdG86bmFtaHl1bmdAZ21haWwuY29tXSBPbiBCZWhhbGYgT2YgTmFtaHl1bmcg
S2ltDQo+U2VudDogVGh1cnNkYXksIFNlcHRlbWJlciAxMCwgMjAxNSAxMToyNyBBTQ0KPlRvOiBB
cm5hbGRvIENhcnZhbGhvIGRlIE1lbG8NCj5DYzogSW5nbyBNb2xuYXI7IFBldGVyIFppamxzdHJh
OyBKaXJpIE9sc2E7IExLTUw7IFdhbmcgTmFuOyDlubPmnb7pm4Xlt7MgLyBISVJBTUFUVe+8jE1B
U0FNSQ0KPlN1YmplY3Q6IFtQQVRDSCAzLzNdIHBlcmYgcHJvYmU6IE1vdmUgaW5pdC9leGl0X3By
b2JlX3N5bWJvbF9tYXBzKCkgaW50byBjYWxsZXJzDQo+DQo+VGhlIGluaXQvZXhpdF9wcm9iZV9z
eW1ib2xfbWFwcygpIHdhcyBhIHBhcnQgb2YNCj5jb252ZXJ0X3BlcmZfcHJvYmVfZXZlbnRzKCkg
YW5kIGNsZWFudXBfcGVyZl9wcm9iZV9ldmVudHMoKS4gIEJ1dCBhcw0KPnRoZXNlIGZ1bmN0aW9u
cyBjYW4gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBpdCdkIGJlIGJldHRlciBtb3ZpbmcNCj5p
bml0L2V4aXQgZnVuY3Rpb25zIG91dCBvZiB0aGVtLCBzbyB0aGF0IGl0IHNob3VsZCBiZSBjYWxs
ZWQgb25seSBvbmNlLg0KDQpBaCwgT0ssIEkgc2VlLg0KQnV0IEknZCByYXRoZXIgbGlrZSBleHBv
c2luZyBwcm90b3R5cGVzIGluIHRoaXMgcGF0Y2gsIHNpbmNlIHRoaXMgaXMgdGhlIHRydWUNCnVz
ZXIgb2YgaXQuDQoNClRoYW5rcyENCg0KPg0KPkNjOiBNYXNhbWkgSGlyYW1hdHN1IDxtYXNhbWku
aGlyYW1hdHN1LnB0QGhpdGFjaGkuY29tPg0KPkNjOiBXYW5nIE5hbiA8d2FuZ25hbjBAaHVhd2Vp
LmNvbT4NCj5TaWduZWQtb2ZmLWJ5OiBOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGtlcm5lbC5vcmc+
DQo+LS0tDQo+IHRvb2xzL3BlcmYvYnVpbHRpbi1wcm9iZS5jICAgIHwgIDUgKysrKysNCj4gdG9v
bHMvcGVyZi91dGlsL3Byb2JlLWV2ZW50LmMgfCAxMSArKysrKy0tLS0tLQ0KPiAyIGZpbGVzIGNo
YW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+DQo+ZGlmZiAtLWdpdCBh
L3Rvb2xzL3BlcmYvYnVpbHRpbi1wcm9iZS5jIGIvdG9vbHMvcGVyZi9idWlsdGluLXByb2JlLmMN
Cj5pbmRleCAyYmVjOWMxZWYyYTMuLjk0Mzg1ZWU4OWRjOCAxMDA2NDQNCj4tLS0gYS90b29scy9w
ZXJmL2J1aWx0aW4tcHJvYmUuYw0KPisrKyBiL3Rvb2xzL3BlcmYvYnVpbHRpbi1wcm9iZS5jDQo+
QEAgLTMxNyw2ICszMTcsMTAgQEAgc3RhdGljIGludCBwZXJmX2FkZF9wcm9iZV9ldmVudHMoc3Ry
dWN0IHBlcmZfcHJvYmVfZXZlbnQgKnBldnMsIGludCBucGV2cykNCj4gCWludCBpLCBrOw0KPiAJ
Y29uc3QgY2hhciAqZXZlbnQgPSBOVUxMLCAqZ3JvdXAgPSBOVUxMOw0KPg0KPisJcmV0ID0gaW5p
dF9wcm9iZV9zeW1ib2xfbWFwcyhwZXZzLT51cHJvYmVzKTsNCj4rCWlmIChyZXQgPCAwKQ0KPisJ
CXJldHVybiByZXQ7DQo+Kw0KPiAJcmV0ID0gY29udmVydF9wZXJmX3Byb2JlX2V2ZW50cyhwZXZz
LCBucGV2cyk7DQo+IAlpZiAocmV0IDwgMCkNCj4gCQlnb3RvIG91dF9jbGVhbnVwOw0KPkBAIC0z
NTQsNiArMzU4LDcgQEAgc3RhdGljIGludCBwZXJmX2FkZF9wcm9iZV9ldmVudHMoc3RydWN0IHBl
cmZfcHJvYmVfZXZlbnQgKnBldnMsIGludCBucGV2cykNCj4NCj4gb3V0X2NsZWFudXA6DQo+IAlj
bGVhbnVwX3BlcmZfcHJvYmVfZXZlbnRzKHBldnMsIG5wZXZzKTsNCj4rCWV4aXRfcHJvYmVfc3lt
Ym9sX21hcHMoKTsNCj4gCXJldHVybiByZXQ7DQo+IH0NCj4NCj5kaWZmIC0tZ2l0IGEvdG9vbHMv
cGVyZi91dGlsL3Byb2JlLWV2ZW50LmMgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYw0K
PmluZGV4IDY0ZTE1Y2JhNzIyMy4uMmI3OGU4ZjE5YjQ1IDEwMDY0NA0KPi0tLSBhL3Rvb2xzL3Bl
cmYvdXRpbC9wcm9iZS1ldmVudC5jDQo+KysrIGIvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWV2ZW50
LmMNCj5AQCAtMjc0NiwxMCArMjc0Niw2IEBAIGludCBjb252ZXJ0X3BlcmZfcHJvYmVfZXZlbnRz
KHN0cnVjdCBwZXJmX3Byb2JlX2V2ZW50ICpwZXZzLCBpbnQgbnBldnMpDQo+IHsNCj4gCWludCBp
LCByZXQ7DQo+DQo+LQlyZXQgPSBpbml0X3Byb2JlX3N5bWJvbF9tYXBzKHBldnMtPnVwcm9iZXMp
Ow0KPi0JaWYgKHJldCA8IDApDQo+LQkJcmV0dXJuIHJldDsNCj4tDQo+IAkvKiBMb29wIDE6IGNv
bnZlcnQgYWxsIGV2ZW50cyAqLw0KPiAJZm9yIChpID0gMDsgaSA8IG5wZXZzOyBpKyspIHsNCj4g
CQkvKiBJbml0IGtwcm9iZSBibGFja2xpc3QgaWYgbmVlZGVkICovDQo+QEAgLTI3OTQsMjAgKzI3
OTAsMjMgQEAgdm9pZCBjbGVhbnVwX3BlcmZfcHJvYmVfZXZlbnRzKHN0cnVjdCBwZXJmX3Byb2Jl
X2V2ZW50ICpwZXZzLCBpbnQgbnBldnMpDQo+IAkJcGV2c1tpXS5udGV2cyA9IDA7DQo+IAkJY2xl
YXJfcGVyZl9wcm9iZV9ldmVudCgmcGV2c1tpXSk7DQo+IAl9DQo+LQ0KPi0JZXhpdF9wcm9iZV9z
eW1ib2xfbWFwcygpOw0KPiB9DQo+DQo+IGludCBhZGRfcGVyZl9wcm9iZV9ldmVudHMoc3RydWN0
IHBlcmZfcHJvYmVfZXZlbnQgKnBldnMsIGludCBucGV2cykNCj4gew0KPiAJaW50IHJldDsNCj4N
Cj4rCXJldCA9IGluaXRfcHJvYmVfc3ltYm9sX21hcHMocGV2cy0+dXByb2Jlcyk7DQo+KwlpZiAo
cmV0IDwgMCkNCj4rCQlyZXR1cm4gcmV0Ow0KPisNCj4gCXJldCA9IGNvbnZlcnRfcGVyZl9wcm9i
ZV9ldmVudHMocGV2cywgbnBldnMpOw0KPiAJaWYgKHJldCA9PSAwKQ0KPiAJCXJldCA9IGFwcGx5
X3BlcmZfcHJvYmVfZXZlbnRzKHBldnMsIG5wZXZzKTsNCj4NCj4gCWNsZWFudXBfcGVyZl9wcm9i
ZV9ldmVudHMocGV2cywgbnBldnMpOw0KPg0KPisJZXhpdF9wcm9iZV9zeW1ib2xfbWFwcygpOw0K
PiAJcmV0dXJuIHJldDsNCj4gfQ0KPg0KPi0tDQo+Mi41LjANCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1222923 — Re: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-11 18:00 +0200
SubjectRe: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers
Message-ID<q7yU2-69Q-3@gated-at.bofh.it>
In reply to#1222172
On Thu, Sep 10, 2015 at 12:58:59PM +0000, 平松雅巳 / HIRAMATU,MASAMI wrote:
> 
> >From: Namhyung Kim [mailto:namhyung@gmail.com] On Behalf Of Namhyung Kim
> >The init/exit_probe_symbol_maps() was a part of
> >convert_perf_probe_events() and cleanup_perf_probe_events().  But as
> >these functions can be called multiple times, it'd be better moving
> >init/exit functions out of them, so that it should be called only once.
> 
> Ah, OK, I see.
> But I'd rather like exposing prototypes in this patch, since this is the true
> user of it.

I'm fine with merging 2/3 and 3/3.  Arnaldo, could you do this or do
you want me to resend?

Thanks,
Namhyung
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1224390 — Re: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers

FromArnaldo Carvalho de Melo <acme@kernel.org>
Date2015-09-14 20:20 +0200
SubjectRe: [PATCH 3/3] perf probe: Move init/exit_probe_symbol_maps() into callers
Message-ID<q8Gwa-5zh-11@gated-at.bofh.it>
In reply to#1222923
Em Sat, Sep 12, 2015 at 12:52:22AM +0900, Namhyung Kim escreveu:
> On Thu, Sep 10, 2015 at 12:58:59PM +0000, 平松雅巳 / HIRAMATU,MASAMI wrote:
> > 
> > >From: Namhyung Kim [mailto:namhyung@gmail.com] On Behalf Of Namhyung Kim
> > >The init/exit_probe_symbol_maps() was a part of
> > >convert_perf_probe_events() and cleanup_perf_probe_events().  But as
> > >these functions can be called multiple times, it'd be better moving
> > >init/exit functions out of them, so that it should be called only once.
> > 
> > Ah, OK, I see.
> > But I'd rather like exposing prototypes in this patch, since this is the true
> > user of it.
> 
> I'm fine with merging 2/3 and 3/3.  Arnaldo, could you do this or do
> you want me to resend?

Done. Merged the three, combined 2/3 with 3/3.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1221859 — [PATCH 2/3] perf probe: Export init/exit_probe_symbol_maps()

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-10 04:40 +0200
Subject[PATCH 2/3] perf probe: Export init/exit_probe_symbol_maps()
Message-ID<q6ZWi-59b-19@gated-at.bofh.it>
In reply to#1221853
The init/exit_symbols_maps() functions are to setup and cleanup
necessary info for probe events.  But they need to be called from out of
the probe code now, so this patch exports them.

However the names are too generic, so change them to have 'probe'. :)

Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
---
 tools/perf/util/probe-event.c | 24 ++++++++++++------------
 tools/perf/util/probe-event.h |  2 ++
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 3d7d60cc6f16..64e15cba7223 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -71,7 +71,7 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp);
 static struct machine *host_machine;
 
 /* Initialize symbol maps and path of vmlinux/modules */
-static int init_symbol_maps(bool user_only)
+int init_probe_symbol_maps(bool user_only)
 {
 	int ret;
 
@@ -101,7 +101,7 @@ out:
 	return ret;
 }
 
-static void exit_symbol_maps(void)
+void exit_probe_symbol_maps(void)
 {
 	if (host_machine) {
 		machine__delete(host_machine);
@@ -859,11 +859,11 @@ int show_line_range(struct line_range *lr, const char *module, bool user)
 {
 	int ret;
 
-	ret = init_symbol_maps(user);
+	ret = init_probe_symbol_maps(user);
 	if (ret < 0)
 		return ret;
 	ret = __show_line_range(lr, module, user);
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 
 	return ret;
 }
@@ -941,7 +941,7 @@ int show_available_vars(struct perf_probe_event *pevs, int npevs,
 	int i, ret = 0;
 	struct debuginfo *dinfo;
 
-	ret = init_symbol_maps(pevs->uprobes);
+	ret = init_probe_symbol_maps(pevs->uprobes);
 	if (ret < 0)
 		return ret;
 
@@ -958,7 +958,7 @@ int show_available_vars(struct perf_probe_event *pevs, int npevs,
 
 	debuginfo__delete(dinfo);
 out:
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 	return ret;
 }
 
@@ -2262,7 +2262,7 @@ int show_perf_probe_events(struct strfilter *filter)
 
 	setup_pager();
 
-	ret = init_symbol_maps(false);
+	ret = init_probe_symbol_maps(false);
 	if (ret < 0)
 		return ret;
 
@@ -2278,7 +2278,7 @@ int show_perf_probe_events(struct strfilter *filter)
 		close(kp_fd);
 	if (up_fd > 0)
 		close(up_fd);
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 
 	return ret;
 }
@@ -2746,7 +2746,7 @@ int convert_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 {
 	int i, ret;
 
-	ret = init_symbol_maps(pevs->uprobes);
+	ret = init_probe_symbol_maps(pevs->uprobes);
 	if (ret < 0)
 		return ret;
 
@@ -2795,7 +2795,7 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 		clear_perf_probe_event(&pevs[i]);
 	}
 
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 }
 
 int add_perf_probe_events(struct perf_probe_event *pevs, int npevs)
@@ -2867,7 +2867,7 @@ int show_available_funcs(const char *target, struct strfilter *_filter,
 	struct map *map;
 	int ret;
 
-	ret = init_symbol_maps(user);
+	ret = init_probe_symbol_maps(user);
 	if (ret < 0)
 		return ret;
 
@@ -2897,7 +2897,7 @@ end:
 	if (user) {
 		map__put(map);
 	}
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 
 	return ret;
 }
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index 9bcea36359f2..ba926c30f8cd 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -110,6 +110,8 @@ struct variable_list {
 };
 
 struct map;
+int init_probe_symbol_maps(bool user_only);
+void exit_probe_symbol_maps(void);
 
 /* Command string to events */
 extern int parse_perf_probe_command(const char *cmd,
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1222173 — RE: [PATCH 2/3] perf probe: Export init/exit_probe_symbol_maps()

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-09-10 15:00 +0200
SubjectRE: [PATCH 2/3] perf probe: Export init/exit_probe_symbol_maps()
Message-ID<q79Ci-1Rv-9@gated-at.bofh.it>
In reply to#1221859
PkZyb206IE5hbWh5dW5nIEtpbSBbbWFpbHRvOm5hbWh5dW5nQGdtYWlsLmNvbV0gT24gQmVoYWxm
IE9mIE5hbWh5dW5nIEtpbQ0KPg0KPlRoZSBpbml0L2V4aXRfc3ltYm9sc19tYXBzKCkgZnVuY3Rp
b25zIGFyZSB0byBzZXR1cCBhbmQgY2xlYW51cA0KPm5lY2Vzc2FyeSBpbmZvIGZvciBwcm9iZSBl
dmVudHMuICBCdXQgdGhleSBuZWVkIHRvIGJlIGNhbGxlZCBmcm9tIG91dCBvZg0KPnRoZSBwcm9i
ZSBjb2RlIG5vdywgc28gdGhpcyBwYXRjaCBleHBvcnRzIHRoZW0uDQo+DQo+SG93ZXZlciB0aGUg
bmFtZXMgYXJlIHRvbyBnZW5lcmljLCBzbyBjaGFuZ2UgdGhlbSB0byBoYXZlICdwcm9iZScuIDop
DQoNCkNoYW5naW5nIG5hbWUgaXMgT0ssIGJ1dCB3aHkgYXJlIHRoZXkgZXhwb3NlZD8/DQoNClRo
YW5rcywNCg0KPg0KPkNjOiBNYXNhbWkgSGlyYW1hdHN1IDxtYXNhbWkuaGlyYW1hdHN1LnB0QGhp
dGFjaGkuY29tPg0KPkNjOiBXYW5nIE5hbiA8d2FuZ25hbjBAaHVhd2VpLmNvbT4NCj5TaWduZWQt
b2ZmLWJ5OiBOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGtlcm5lbC5vcmc+DQo+LS0tDQo+IHRvb2xz
L3BlcmYvdXRpbC9wcm9iZS1ldmVudC5jIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tDQo+
IHRvb2xzL3BlcmYvdXRpbC9wcm9iZS1ldmVudC5oIHwgIDIgKysNCj4gMiBmaWxlcyBjaGFuZ2Vk
LCAxNCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkNCj4NCj5kaWZmIC0tZ2l0IGEvdG9v
bHMvcGVyZi91dGlsL3Byb2JlLWV2ZW50LmMgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQu
Yw0KPmluZGV4IDNkN2Q2MGNjNmYxNi4uNjRlMTVjYmE3MjIzIDEwMDY0NA0KPi0tLSBhL3Rvb2xz
L3BlcmYvdXRpbC9wcm9iZS1ldmVudC5jDQo+KysrIGIvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWV2
ZW50LmMNCj5AQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgY2hhciAqc3ludGhlc2l6ZV9wZXJmX3By
b2JlX3BvaW50KHN0cnVjdCBwZXJmX3Byb2JlX3BvaW50ICpwcCk7DQo+IHN0YXRpYyBzdHJ1Y3Qg
bWFjaGluZSAqaG9zdF9tYWNoaW5lOw0KPg0KPiAvKiBJbml0aWFsaXplIHN5bWJvbCBtYXBzIGFu
ZCBwYXRoIG9mIHZtbGludXgvbW9kdWxlcyAqLw0KPi1zdGF0aWMgaW50IGluaXRfc3ltYm9sX21h
cHMoYm9vbCB1c2VyX29ubHkpDQo+K2ludCBpbml0X3Byb2JlX3N5bWJvbF9tYXBzKGJvb2wgdXNl
cl9vbmx5KQ0KPiB7DQo+IAlpbnQgcmV0Ow0KPg0KPkBAIC0xMDEsNyArMTAxLDcgQEAgb3V0Og0K
PiAJcmV0dXJuIHJldDsNCj4gfQ0KPg0KPi1zdGF0aWMgdm9pZCBleGl0X3N5bWJvbF9tYXBzKHZv
aWQpDQo+K3ZvaWQgZXhpdF9wcm9iZV9zeW1ib2xfbWFwcyh2b2lkKQ0KPiB7DQo+IAlpZiAoaG9z
dF9tYWNoaW5lKSB7DQo+IAkJbWFjaGluZV9fZGVsZXRlKGhvc3RfbWFjaGluZSk7DQo+QEAgLTg1
OSwxMSArODU5LDExIEBAIGludCBzaG93X2xpbmVfcmFuZ2Uoc3RydWN0IGxpbmVfcmFuZ2UgKmxy
LCBjb25zdCBjaGFyICptb2R1bGUsIGJvb2wgdXNlcikNCj4gew0KPiAJaW50IHJldDsNCj4NCj4t
CXJldCA9IGluaXRfc3ltYm9sX21hcHModXNlcik7DQo+KwlyZXQgPSBpbml0X3Byb2JlX3N5bWJv
bF9tYXBzKHVzZXIpOw0KPiAJaWYgKHJldCA8IDApDQo+IAkJcmV0dXJuIHJldDsNCj4gCXJldCA9
IF9fc2hvd19saW5lX3JhbmdlKGxyLCBtb2R1bGUsIHVzZXIpOw0KPi0JZXhpdF9zeW1ib2xfbWFw
cygpOw0KPisJZXhpdF9wcm9iZV9zeW1ib2xfbWFwcygpOw0KPg0KPiAJcmV0dXJuIHJldDsNCj4g
fQ0KPkBAIC05NDEsNyArOTQxLDcgQEAgaW50IHNob3dfYXZhaWxhYmxlX3ZhcnMoc3RydWN0IHBl
cmZfcHJvYmVfZXZlbnQgKnBldnMsIGludCBucGV2cywNCj4gCWludCBpLCByZXQgPSAwOw0KPiAJ
c3RydWN0IGRlYnVnaW5mbyAqZGluZm87DQo+DQo+LQlyZXQgPSBpbml0X3N5bWJvbF9tYXBzKHBl
dnMtPnVwcm9iZXMpOw0KPisJcmV0ID0gaW5pdF9wcm9iZV9zeW1ib2xfbWFwcyhwZXZzLT51cHJv
YmVzKTsNCj4gCWlmIChyZXQgPCAwKQ0KPiAJCXJldHVybiByZXQ7DQo+DQo+QEAgLTk1OCw3ICs5
NTgsNyBAQCBpbnQgc2hvd19hdmFpbGFibGVfdmFycyhzdHJ1Y3QgcGVyZl9wcm9iZV9ldmVudCAq
cGV2cywgaW50IG5wZXZzLA0KPg0KPiAJZGVidWdpbmZvX19kZWxldGUoZGluZm8pOw0KPiBvdXQ6
DQo+LQlleGl0X3N5bWJvbF9tYXBzKCk7DQo+KwlleGl0X3Byb2JlX3N5bWJvbF9tYXBzKCk7DQo+
IAlyZXR1cm4gcmV0Ow0KPiB9DQo+DQo+QEAgLTIyNjIsNyArMjI2Miw3IEBAIGludCBzaG93X3Bl
cmZfcHJvYmVfZXZlbnRzKHN0cnVjdCBzdHJmaWx0ZXIgKmZpbHRlcikNCj4NCj4gCXNldHVwX3Bh
Z2VyKCk7DQo+DQo+LQlyZXQgPSBpbml0X3N5bWJvbF9tYXBzKGZhbHNlKTsNCj4rCXJldCA9IGlu
aXRfcHJvYmVfc3ltYm9sX21hcHMoZmFsc2UpOw0KPiAJaWYgKHJldCA8IDApDQo+IAkJcmV0dXJu
IHJldDsNCj4NCj5AQCAtMjI3OCw3ICsyMjc4LDcgQEAgaW50IHNob3dfcGVyZl9wcm9iZV9ldmVu
dHMoc3RydWN0IHN0cmZpbHRlciAqZmlsdGVyKQ0KPiAJCWNsb3NlKGtwX2ZkKTsNCj4gCWlmICh1
cF9mZCA+IDApDQo+IAkJY2xvc2UodXBfZmQpOw0KPi0JZXhpdF9zeW1ib2xfbWFwcygpOw0KPisJ
ZXhpdF9wcm9iZV9zeW1ib2xfbWFwcygpOw0KPg0KPiAJcmV0dXJuIHJldDsNCj4gfQ0KPkBAIC0y
NzQ2LDcgKzI3NDYsNyBAQCBpbnQgY29udmVydF9wZXJmX3Byb2JlX2V2ZW50cyhzdHJ1Y3QgcGVy
Zl9wcm9iZV9ldmVudCAqcGV2cywgaW50IG5wZXZzKQ0KPiB7DQo+IAlpbnQgaSwgcmV0Ow0KPg0K
Pi0JcmV0ID0gaW5pdF9zeW1ib2xfbWFwcyhwZXZzLT51cHJvYmVzKTsNCj4rCXJldCA9IGluaXRf
cHJvYmVfc3ltYm9sX21hcHMocGV2cy0+dXByb2Jlcyk7DQo+IAlpZiAocmV0IDwgMCkNCj4gCQly
ZXR1cm4gcmV0Ow0KPg0KPkBAIC0yNzk1LDcgKzI3OTUsNyBAQCB2b2lkIGNsZWFudXBfcGVyZl9w
cm9iZV9ldmVudHMoc3RydWN0IHBlcmZfcHJvYmVfZXZlbnQgKnBldnMsIGludCBucGV2cykNCj4g
CQljbGVhcl9wZXJmX3Byb2JlX2V2ZW50KCZwZXZzW2ldKTsNCj4gCX0NCj4NCj4tCWV4aXRfc3lt
Ym9sX21hcHMoKTsNCj4rCWV4aXRfcHJvYmVfc3ltYm9sX21hcHMoKTsNCj4gfQ0KPg0KPiBpbnQg
YWRkX3BlcmZfcHJvYmVfZXZlbnRzKHN0cnVjdCBwZXJmX3Byb2JlX2V2ZW50ICpwZXZzLCBpbnQg
bnBldnMpDQo+QEAgLTI4NjcsNyArMjg2Nyw3IEBAIGludCBzaG93X2F2YWlsYWJsZV9mdW5jcyhj
b25zdCBjaGFyICp0YXJnZXQsIHN0cnVjdCBzdHJmaWx0ZXIgKl9maWx0ZXIsDQo+IAlzdHJ1Y3Qg
bWFwICptYXA7DQo+IAlpbnQgcmV0Ow0KPg0KPi0JcmV0ID0gaW5pdF9zeW1ib2xfbWFwcyh1c2Vy
KTsNCj4rCXJldCA9IGluaXRfcHJvYmVfc3ltYm9sX21hcHModXNlcik7DQo+IAlpZiAocmV0IDwg
MCkNCj4gCQlyZXR1cm4gcmV0Ow0KPg0KPkBAIC0yODk3LDcgKzI4OTcsNyBAQCBlbmQ6DQo+IAlp
ZiAodXNlcikgew0KPiAJCW1hcF9fcHV0KG1hcCk7DQo+IAl9DQo+LQlleGl0X3N5bWJvbF9tYXBz
KCk7DQo+KwlleGl0X3Byb2JlX3N5bWJvbF9tYXBzKCk7DQo+DQo+IAlyZXR1cm4gcmV0Ow0KPiB9
DQo+ZGlmZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1ldmVudC5oIGIvdG9vbHMvcGVy
Zi91dGlsL3Byb2JlLWV2ZW50LmgNCj5pbmRleCA5YmNlYTM2MzU5ZjIuLmJhOTI2YzMwZjhjZCAx
MDA2NDQNCj4tLS0gYS90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuaA0KPisrKyBiL3Rvb2xz
L3BlcmYvdXRpbC9wcm9iZS1ldmVudC5oDQo+QEAgLTExMCw2ICsxMTAsOCBAQCBzdHJ1Y3QgdmFy
aWFibGVfbGlzdCB7DQo+IH07DQo+DQo+IHN0cnVjdCBtYXA7DQo+K2ludCBpbml0X3Byb2JlX3N5
bWJvbF9tYXBzKGJvb2wgdXNlcl9vbmx5KTsNCj4rdm9pZCBleGl0X3Byb2JlX3N5bWJvbF9tYXBz
KHZvaWQpOw0KPg0KPiAvKiBDb21tYW5kIHN0cmluZyB0byBldmVudHMgKi8NCj4gZXh0ZXJuIGlu
dCBwYXJzZV9wZXJmX3Byb2JlX2NvbW1hbmQoY29uc3QgY2hhciAqY21kLA0KPi0tDQo+Mi41LjAN
Cg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1225770 — [tip:perf/core] perf probe: Export init/exit_probe_symbol_maps()

Fromtip-bot for Namhyung Kim <tipbot@zytor.com>
Date2015-09-16 09:30 +0200
Subject[tip:perf/core] perf probe: Export init/exit_probe_symbol_maps()
Message-ID<q9fkd-63y-7@gated-at.bofh.it>
In reply to#1221859
Commit-ID:  9bae1e8c3fe5359ce17309b894f54667fd563e98
Gitweb:     http://git.kernel.org/tip/9bae1e8c3fe5359ce17309b894f54667fd563e98
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Thu, 10 Sep 2015 11:27:05 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 15 Sep 2015 09:48:32 -0300

perf probe: Export init/exit_probe_symbol_maps()

The init/exit_symbols_maps() functions are to setup and cleanup
necessary info for probe events.  But they need to be called from out of
the probe code now, so this patch exports them.

However the names are too generic, so change them to have 'probe'. :)

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1441852026-28974-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/builtin-probe.c    |  5 +++++
 tools/perf/util/probe-event.c | 31 +++++++++++++++----------------
 tools/perf/util/probe-event.h |  2 ++
 3 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index 2bec9c1..94385ee 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -317,6 +317,10 @@ static int perf_add_probe_events(struct perf_probe_event *pevs, int npevs)
 	int i, k;
 	const char *event = NULL, *group = NULL;
 
+	ret = init_probe_symbol_maps(pevs->uprobes);
+	if (ret < 0)
+		return ret;
+
 	ret = convert_perf_probe_events(pevs, npevs);
 	if (ret < 0)
 		goto out_cleanup;
@@ -354,6 +358,7 @@ static int perf_add_probe_events(struct perf_probe_event *pevs, int npevs)
 
 out_cleanup:
 	cleanup_perf_probe_events(pevs, npevs);
+	exit_probe_symbol_maps();
 	return ret;
 }
 
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 3d7d60c..2b78e8f 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -71,7 +71,7 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp);
 static struct machine *host_machine;
 
 /* Initialize symbol maps and path of vmlinux/modules */
-static int init_symbol_maps(bool user_only)
+int init_probe_symbol_maps(bool user_only)
 {
 	int ret;
 
@@ -101,7 +101,7 @@ out:
 	return ret;
 }
 
-static void exit_symbol_maps(void)
+void exit_probe_symbol_maps(void)
 {
 	if (host_machine) {
 		machine__delete(host_machine);
@@ -859,11 +859,11 @@ int show_line_range(struct line_range *lr, const char *module, bool user)
 {
 	int ret;
 
-	ret = init_symbol_maps(user);
+	ret = init_probe_symbol_maps(user);
 	if (ret < 0)
 		return ret;
 	ret = __show_line_range(lr, module, user);
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 
 	return ret;
 }
@@ -941,7 +941,7 @@ int show_available_vars(struct perf_probe_event *pevs, int npevs,
 	int i, ret = 0;
 	struct debuginfo *dinfo;
 
-	ret = init_symbol_maps(pevs->uprobes);
+	ret = init_probe_symbol_maps(pevs->uprobes);
 	if (ret < 0)
 		return ret;
 
@@ -958,7 +958,7 @@ int show_available_vars(struct perf_probe_event *pevs, int npevs,
 
 	debuginfo__delete(dinfo);
 out:
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 	return ret;
 }
 
@@ -2262,7 +2262,7 @@ int show_perf_probe_events(struct strfilter *filter)
 
 	setup_pager();
 
-	ret = init_symbol_maps(false);
+	ret = init_probe_symbol_maps(false);
 	if (ret < 0)
 		return ret;
 
@@ -2278,7 +2278,7 @@ int show_perf_probe_events(struct strfilter *filter)
 		close(kp_fd);
 	if (up_fd > 0)
 		close(up_fd);
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 
 	return ret;
 }
@@ -2746,10 +2746,6 @@ int convert_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 {
 	int i, ret;
 
-	ret = init_symbol_maps(pevs->uprobes);
-	if (ret < 0)
-		return ret;
-
 	/* Loop 1: convert all events */
 	for (i = 0; i < npevs; i++) {
 		/* Init kprobe blacklist if needed */
@@ -2794,20 +2790,23 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 		pevs[i].ntevs = 0;
 		clear_perf_probe_event(&pevs[i]);
 	}
-
-	exit_symbol_maps();
 }
 
 int add_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 {
 	int ret;
 
+	ret = init_probe_symbol_maps(pevs->uprobes);
+	if (ret < 0)
+		return ret;
+
 	ret = convert_perf_probe_events(pevs, npevs);
 	if (ret == 0)
 		ret = apply_perf_probe_events(pevs, npevs);
 
 	cleanup_perf_probe_events(pevs, npevs);
 
+	exit_probe_symbol_maps();
 	return ret;
 }
 
@@ -2867,7 +2866,7 @@ int show_available_funcs(const char *target, struct strfilter *_filter,
 	struct map *map;
 	int ret;
 
-	ret = init_symbol_maps(user);
+	ret = init_probe_symbol_maps(user);
 	if (ret < 0)
 		return ret;
 
@@ -2897,7 +2896,7 @@ end:
 	if (user) {
 		map__put(map);
 	}
-	exit_symbol_maps();
+	exit_probe_symbol_maps();
 
 	return ret;
 }
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index 9bcea36..ba926c3 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -110,6 +110,8 @@ struct variable_list {
 };
 
 struct map;
+int init_probe_symbol_maps(bool user_only);
+void exit_probe_symbol_maps(void);
 
 /* Command string to events */
 extern int parse_perf_probe_command(const char *cmd,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1222044 — RE: [PATCH 1/3] perf probe: Free perf probe event in cleanup_perf_probe_events()

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-09-10 11:00 +0200
SubjectRE: [PATCH 1/3] perf probe: Free perf probe event in cleanup_perf_probe_events()
Message-ID<q75S3-4Wf-13@gated-at.bofh.it>
In reply to#1221853
SGkgTmFtaHl1bmcsDQoNCj5Gcm9tOiBOYW1oeXVuZyBLaW0gW21haWx0bzpuYW1oeXVuZ0BnbWFp
bC5jb21dIE9uIEJlaGFsZiBPZiBOYW1oeXVuZyBLaW0NCj5TZW50OiBUaHVyc2RheSwgU2VwdGVt
YmVyIDEwLCAyMDE1IDExOjI3IEFNDQo+VG86IEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbw0KPkNj
OiBJbmdvIE1vbG5hcjsgUGV0ZXIgWmlqbHN0cmE7IEppcmkgT2xzYTsgTEtNTDsgV2FuZyBOYW47
IOW5s+advumbheW3syAvIEhJUkFNQVRV77yMTUFTQU1JDQo+U3ViamVjdDogW1BBVENIIDEvM10g
cGVyZiBwcm9iZTogRnJlZSBwZXJmIHByb2JlIGV2ZW50IGluIGNsZWFudXBfcGVyZl9wcm9iZV9l
dmVudHMoKQ0KPg0KPlRoZSBjbGVhbnVwX3BlcmZfcHJvYmVfZXZlbnRzKCkgZnJlZXMgYWxsIHJl
c291cmNlcyByZWxhdGVkIHRvIGEgcGVyZg0KPnByb2JlIGV2ZW50LiAgSG93ZXZlciBpdCBvbmx5
IGZyZWVkIHJlc291cmNlcyBpbiB0cmFjZSBwcm9iZSBldmVudHMsIG5vdA0KPnBlcmYgcHJvYmUg
ZXZlbnRzLiAgU28gY2FsbCBjbGVhcl9wZXJmX3Byb2JlX2V2ZW50KCkgdG9vLg0KDQpUaGlzIGxv
b2tzIGdvb2QgdG8gbWUgOikNCg0KQWNrZWQtYnk6IE1hc2FtaSBIaXJhbWF0c3UgPG1hc2FtaS5o
aXJhbWF0c3UucHRAaGl0YWNoaS5jb20+DQoNClRoYW5rcyENCg0KDQo+DQo+Q2M6IE1hc2FtaSBI
aXJhbWF0c3UgPG1hc2FtaS5oaXJhbWF0c3UucHRAaGl0YWNoaS5jb20+DQo+UmVwb3J0ZWQtYnk6
IFdhbmcgTmFuIDx3YW5nbmFuMEBodWF3ZWkuY29tPg0KPlNpZ25lZC1vZmYtYnk6IE5hbWh5dW5n
IEtpbSA8bmFtaHl1bmdAa2VybmVsLm9yZz4NCj4tLS0NCj4gdG9vbHMvcGVyZi91dGlsL3Byb2Jl
LWV2ZW50LmMgfCAxICsNCj4gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspDQo+DQo+ZGlm
ZiAtLWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1ldmVudC5jIGIvdG9vbHMvcGVyZi91dGls
L3Byb2JlLWV2ZW50LmMNCj5pbmRleCA1OTY0ZWNjYmU5NGQuLjNkN2Q2MGNjNmYxNiAxMDA2NDQN
Cj4tLS0gYS90b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYw0KPisrKyBiL3Rvb2xzL3BlcmYv
dXRpbC9wcm9iZS1ldmVudC5jDQo+QEAgLTI3OTIsNiArMjc5Miw3IEBAIHZvaWQgY2xlYW51cF9w
ZXJmX3Byb2JlX2V2ZW50cyhzdHJ1Y3QgcGVyZl9wcm9iZV9ldmVudCAqcGV2cywgaW50IG5wZXZz
KQ0KPiAJCQljbGVhcl9wcm9iZV90cmFjZV9ldmVudCgmcGV2c1tpXS50ZXZzW2pdKTsNCj4gCQl6
ZnJlZSgmcGV2c1tpXS50ZXZzKTsNCj4gCQlwZXZzW2ldLm50ZXZzID0gMDsNCj4rCQljbGVhcl9w
ZXJmX3Byb2JlX2V2ZW50KCZwZXZzW2ldKTsNCj4gCX0NCj4NCj4gCWV4aXRfc3ltYm9sX21hcHMo
KTsNCj4tLQ0KPjIuNS4wDQoNCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1225773 — [tip:perf/core] perf probe: Free perf_probe_event in cleanup_perf_probe_events()

Fromtip-bot for Namhyung Kim <tipbot@zytor.com>
Date2015-09-16 09:30 +0200
Subject[tip:perf/core] perf probe: Free perf_probe_event in cleanup_perf_probe_events()
Message-ID<q9fke-63y-21@gated-at.bofh.it>
In reply to#1221853
Commit-ID:  a43aac299c3abc09eff856039f5b72166b780d35
Gitweb:     http://git.kernel.org/tip/a43aac299c3abc09eff856039f5b72166b780d35
Author:     Namhyung Kim <namhyung@kernel.org>
AuthorDate: Thu, 10 Sep 2015 11:27:04 +0900
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 15 Sep 2015 09:48:32 -0300

perf probe: Free perf_probe_event in cleanup_perf_probe_events()

The cleanup_perf_probe_events() frees all resources related to a perf
probe event.  However it only freed resources in trace probe events, not
perf probe events.  So call clear_perf_probe_event() too.

Reported-by: Wang Nan <wangnan0@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1441852026-28974-1-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/probe-event.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 5964ecc..3d7d60c 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2792,6 +2792,7 @@ void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 			clear_probe_trace_event(&pevs[i].tevs[j]);
 		zfree(&pevs[i].tevs);
 		pevs[i].ntevs = 0;
+		clear_perf_probe_event(&pevs[i]);
 	}
 
 	exit_symbol_maps();
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web