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


Groups > linux.kernel > #1221852 > unrolled thread

Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events()

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

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events() Namhyung Kim <namhyung@kernel.org> - 2015-09-10 04:30 +0200
    RE: Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events() 平松雅巳 / HIRAMATU,MASAMI   <masami.hiramatsu.pt@hitachi.com> - 2015-09-10 07:10 +0200
      Re: Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events() Namhyung Kim <namhyung@kernel.org> - 2015-09-10 08:50 +0200
        RE: Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events() 平松雅巳 / HIRAMATU,MASAMI   <masami.hiramatsu.pt@hitachi.com> - 2015-09-10 10:20 +0200
          Re: Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events() Namhyung Kim <namhyung@kernel.org> - 2015-09-11 18:40 +0200

#1221852 — Re: [PATCH v2 1/5] perf probe: Split add_perf_probe_events()

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-10 04:30 +0200
SubjectRe: [PATCH v2 1/5] perf probe: Split add_perf_probe_events()
Message-ID<q6ZMC-4XO-9@gated-at.bofh.it>
On Sun, Sep 06, 2015 at 03:47:37PM +0800, Wangnan (F) wrote:
> Hi Namhyung,

Hi,

> 
> Thanks for this patchset.
> 
> Could you plase have a look at patch 5/27 and 6/27 in my newest pull
> request?
> These 2 patches utilize new probing API to create probe point and collect
> probe_trace_events. I'm not very sure I fully understand your design
> principle,
> especially the cleanup part, because I can see different functions dealing
> with
> cleanup:
> 
> cleanup_perf_probe_events
> del_perf_probe_events
> clear_perf_probe_event
> clear_probe_trace_event
> 
> But non of them works perfectly for me.

The cleanup_perf_probe_events() is just to keep the existing logic as
long as possible.  But I think it needs to call
clear_perf_probe_event().

The del_perf_probe_events() uses strfilter, but I think it can be
problematic if other instances or users are using similar events at
the same time.

So for your case, IMHO it'd better keeping the perf/trace events after
probing and reusing the events for unprobing.  I'll take a look at it.


> 
> In bpf_prog_priv__clear() function of 6/27, I copied some code from
> cleanup_perf_probe_events(), because I think when destroying bpf programs,
> the probe_trace_events should also be cleanuped, but we don't need call
> exit_symbol_maps() many times, because we are in 'perf record', and not
> sure whether other parts of perf need symbol maps. Otherwise I think
> directly
> calling cleanup_perf_probe_events() sould be better.

Yeah, I also think exit_symbol_maps() should not be a part of the
cleanup.  I'll send a patch soon.


> 
> You can find patch from:
> 
> http://lkml.kernel.org/n/1441523623-152703-6-git-send-email-wangnan0@huawei.com
> 
> http://lkml.kernel.org/n/1441523623-152703-7-git-send-email-wangnan0@huawei.com

Thanks for your work!
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] | [next] | [standalone]


#1221918

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-09-10 07:10 +0200
Message-ID<q72hr-bR-1@gated-at.bofh.it>
In reply to#1221852
PkZyb206IE5hbWh5dW5nIEtpbSBbbWFpbHRvOm5hbWh5dW5nQGdtYWlsLmNvbV0gT24gQmVoYWxm
IE9mIE5hbWh5dW5nIEtpbQ0KPg0KPk9uIFN1biwgU2VwIDA2LCAyMDE1IGF0IDAzOjQ3OjM3UE0g
KzA4MDAsIFdhbmduYW4gKEYpIHdyb3RlOg0KPj4gSGkgTmFtaHl1bmcsDQo+DQo+SGksDQo+DQo+
Pg0KPj4gVGhhbmtzIGZvciB0aGlzIHBhdGNoc2V0Lg0KPj4NCj4+IENvdWxkIHlvdSBwbGFzZSBo
YXZlIGEgbG9vayBhdCBwYXRjaCA1LzI3IGFuZCA2LzI3IGluIG15IG5ld2VzdCBwdWxsDQo+PiBy
ZXF1ZXN0Pw0KPj4gVGhlc2UgMiBwYXRjaGVzIHV0aWxpemUgbmV3IHByb2JpbmcgQVBJIHRvIGNy
ZWF0ZSBwcm9iZSBwb2ludCBhbmQgY29sbGVjdA0KPj4gcHJvYmVfdHJhY2VfZXZlbnRzLiBJJ20g
bm90IHZlcnkgc3VyZSBJIGZ1bGx5IHVuZGVyc3RhbmQgeW91ciBkZXNpZ24NCj4+IHByaW5jaXBs
ZSwNCj4+IGVzcGVjaWFsbHkgdGhlIGNsZWFudXAgcGFydCwgYmVjYXVzZSBJIGNhbiBzZWUgZGlm
ZmVyZW50IGZ1bmN0aW9ucyBkZWFsaW5nDQo+PiB3aXRoDQo+PiBjbGVhbnVwOg0KPj4NCj4+IGNs
ZWFudXBfcGVyZl9wcm9iZV9ldmVudHMNCg0KVGhpcyBpcyBmb3IgY2xlYXJpbmcgYW4gYXJyYXkg
b2YgcHJvYmUgZXZlbnRzLg0KDQo+PiBkZWxfcGVyZl9wcm9iZV9ldmVudHMNCg0KVGhpcyBpcyBu
b3QgZm9yIGNsZWFudXAsIGJ1dCBmb3IgcmVtb3ZpbmcgcHJvYmVzIGluIHRoZSBrZXJuZWwuDQoN
Cj4+IGNsZWFyX3BlcmZfcHJvYmVfZXZlbnQNCj4+IGNsZWFyX3Byb2JlX3RyYWNlX2V2ZW50DQoN
ClRoZXNlIGFyZSB0aGUgY2xlYW51cCBlYWNoIGV2ZW50LiBBaCwgcmlnaHQsIHNpbmNlIG5vdyBw
ZXJmX3Byb2JlX2V2ZW50IGhhcyBwcm9iZV90cmFjZV9ldmVudHMsDQpjbGVhcl9wZXJmX3Byb2Jl
X2V2ZW50IGhhcyB0byBjYWxsIGNsZWFyX3Byb2JlX3RyYWNlX2V2ZW50Lg0KDQo+Pg0KPj4gQnV0
IG5vbiBvZiB0aGVtIHdvcmtzIHBlcmZlY3RseSBmb3IgbWUuDQo+DQo+VGhlIGNsZWFudXBfcGVy
Zl9wcm9iZV9ldmVudHMoKSBpcyBqdXN0IHRvIGtlZXAgdGhlIGV4aXN0aW5nIGxvZ2ljIGFzDQo+
bG9uZyBhcyBwb3NzaWJsZS4gIEJ1dCBJIHRoaW5rIGl0IG5lZWRzIHRvIGNhbGwNCj5jbGVhcl9w
ZXJmX3Byb2JlX2V2ZW50KCkuDQo+DQo+VGhlIGRlbF9wZXJmX3Byb2JlX2V2ZW50cygpIHVzZXMg
c3RyZmlsdGVyLCBidXQgSSB0aGluayBpdCBjYW4gYmUNCj5wcm9ibGVtYXRpYyBpZiBvdGhlciBp
bnN0YW5jZXMgb3IgdXNlcnMgYXJlIHVzaW5nIHNpbWlsYXIgZXZlbnRzIGF0DQo+dGhlIHNhbWUg
dGltZS4NCg0KWWVhaCwgc2luY2UgcGVyZiBwcm9iZSBkb2Vzbid0IGxvY2sgdGhlIGZ0cmFjZSwg
dGhlcmUgc2hvdWxkIGJlIGENCnRpbWluZyBidWcsIGJ1dCBpdCBjYW4gYmUgZml4ZWQgZWFzaWx5
IGJ5IGlnbm9yaW5nIC1FTk9FTlQuIDopIA0KDQo+U28gZm9yIHlvdXIgY2FzZSwgSU1ITyBpdCdk
IGJldHRlciBrZWVwaW5nIHRoZSBwZXJmL3RyYWNlIGV2ZW50cyBhZnRlcg0KPnByb2JpbmcgYW5k
IHJldXNpbmcgdGhlIGV2ZW50cyBmb3IgdW5wcm9iaW5nLiAgSSdsbCB0YWtlIGEgbG9vayBhdCBp
dC4NCj4NCj4NCj4+DQo+PiBJbiBicGZfcHJvZ19wcml2X19jbGVhcigpIGZ1bmN0aW9uIG9mIDYv
MjcsIEkgY29waWVkIHNvbWUgY29kZSBmcm9tDQo+PiBjbGVhbnVwX3BlcmZfcHJvYmVfZXZlbnRz
KCksIGJlY2F1c2UgSSB0aGluayB3aGVuIGRlc3Ryb3lpbmcgYnBmIHByb2dyYW1zLA0KPj4gdGhl
IHByb2JlX3RyYWNlX2V2ZW50cyBzaG91bGQgYWxzbyBiZSBjbGVhbnVwZWQsIGJ1dCB3ZSBkb24n
dCBuZWVkIGNhbGwNCj4+IGV4aXRfc3ltYm9sX21hcHMoKSBtYW55IHRpbWVzLCBiZWNhdXNlIHdl
IGFyZSBpbiAncGVyZiByZWNvcmQnLCBhbmQgbm90DQo+PiBzdXJlIHdoZXRoZXIgb3RoZXIgcGFy
dHMgb2YgcGVyZiBuZWVkIHN5bWJvbCBtYXBzLiBPdGhlcndpc2UgSSB0aGluaw0KPj4gZGlyZWN0
bHkNCj4+IGNhbGxpbmcgY2xlYW51cF9wZXJmX3Byb2JlX2V2ZW50cygpIHNvdWxkIGJlIGJldHRl
ci4NCj4NCj5ZZWFoLCBJIGFsc28gdGhpbmsgZXhpdF9zeW1ib2xfbWFwcygpIHNob3VsZCBub3Qg
YmUgYSBwYXJ0IG9mIHRoZQ0KPmNsZWFudXAuICBJJ2xsIHNlbmQgYSBwYXRjaCBzb29uLg0KDQpP
Sy4NCg0KDQpUaGFua3MhDQo=
--
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]


#1221956

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-10 08:50 +0200
Message-ID<q73Qe-2gG-7@gated-at.bofh.it>
In reply to#1221918
Hi Masami,

On Thu, Sep 10, 2015 at 05:00:07AM +0000, 平松雅巳 / HIRAMATU,MASAMI wrote:
> >From: Namhyung Kim [mailto:namhyung@gmail.com] On Behalf Of Namhyung Kim
> >The del_perf_probe_events() uses strfilter, but I think it can be
> >problematic if other instances or users are using similar events at
> >the same time.
> 
> Yeah, since perf probe doesn't lock the ftrace, there should be a
> timing bug, but it can be fixed easily by ignoring -ENOENT. :) 

By ignoring -ENOENT?  Are you saying that there's a race between two
deleters?  Yes, of course, but I think that the bug will hit an adder
and a deleter especially if automatic probing is used (by eBPF and/or
SDT recording).

What about this?


From 45dba35cb0f5fa1b2e78fec8c05faf5e9a1b200e Mon Sep 17 00:00:00 2001
From: Namhyung Kim <namhyung@kernel.org>
Date: Thu, 10 Sep 2015 15:25:28 +0900
Subject: [PATCH] perf probe: Support deleting trace events directly

Currently del_perf_probe_events() deletes events which match to a given
filter.  But it might have a timing bug when other users also set probes
with similar names.  So it'd be better deleting our events directly
rather than pattern matching.

Since the del_perf_probe_events() has no user at this time, change it to
receive perf_probe_event's.  It is more consistent to other APIs as well.

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 | 30 +++++++++++-------------------
 tools/perf/util/probe-event.h |  2 +-
 tools/perf/util/probe-file.c  | 24 ++++++++++++++++++++++++
 tools/perf/util/probe-file.h  |  1 +
 4 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 2b78e8f19b45..88d7ef87ab99 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2810,37 +2810,29 @@ int add_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 	return ret;
 }
 
-int del_perf_probe_events(struct strfilter *filter)
+int del_perf_probe_events(struct perf_probe_event *pevs, int npevs)
 {
-	int ret, ret2, ufd = -1, kfd = -1;
-	char *str = strfilter__string(filter);
+	int i, j, ret, ret2;
+	int ufd = -1, kfd = -1;
 
-	if (!str)
-		return -EINVAL;
-
-	/* Get current event names */
 	ret = probe_file__open_both(&kfd, &ufd, PF_FL_RW);
 	if (ret < 0)
-		goto out;
+		return ret;
 
-	ret = probe_file__del_events(kfd, filter);
-	if (ret < 0 && ret != -ENOENT)
-		goto error;
+	for (i = 0; i < npevs; i++) {
+		int fd = pevs[i].uprobes ? ufd : kfd;
 
-	ret2 = probe_file__del_events(ufd, filter);
-	if (ret2 < 0 && ret2 != -ENOENT) {
-		ret = ret2;
-		goto error;
+		for (j = 0; j < pevs[i].ntevs; j++) {
+			ret2 = probe_file__del_trace_event(fd, &pevs[i].tevs[j]);
+			if (ret == 0)
+				ret = ret2;
+		}
 	}
-	ret = 0;
 
-error:
 	if (kfd >= 0)
 		close(kfd);
 	if (ufd >= 0)
 		close(ufd);
-out:
-	free(str);
 
 	return ret;
 }
diff --git a/tools/perf/util/probe-event.h b/tools/perf/util/probe-event.h
index ba926c30f8cd..cb58b981cc92 100644
--- a/tools/perf/util/probe-event.h
+++ b/tools/perf/util/probe-event.h
@@ -145,7 +145,7 @@ extern int add_perf_probe_events(struct perf_probe_event *pevs, int npevs);
 extern int convert_perf_probe_events(struct perf_probe_event *pevs, int npevs);
 extern int apply_perf_probe_events(struct perf_probe_event *pevs, int npevs);
 extern void cleanup_perf_probe_events(struct perf_probe_event *pevs, int npevs);
-extern int del_perf_probe_events(struct strfilter *filter);
+extern int del_perf_probe_events(struct perf_probe_event *pevs, int npevs);
 
 extern int show_perf_probe_event(const char *group, const char *event,
 				 struct perf_probe_event *pev,
diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c
index 89dbeb92c68e..334b7b75b55b 100644
--- a/tools/perf/util/probe-file.c
+++ b/tools/perf/util/probe-file.c
@@ -319,3 +319,27 @@ int probe_file__del_events(int fd, struct strfilter *filter)
 
 	return ret;
 }
+
+int probe_file__del_trace_event(int fd, struct probe_trace_event *tev)
+{
+	char buf[128];
+	int ret;
+
+	/* Convert from perf-probe event to trace-probe event */
+	ret = e_snprintf(buf, 128, "-:%s/%s", tev->group, tev->event);
+	if (ret < 0)
+		goto error;
+
+	pr_debug("Writing event: %s\n", buf);
+	ret = write(fd, buf, strlen(buf));
+	if (ret < 0) {
+		ret = -errno;
+		goto error;
+	}
+
+	return 0;
+error:
+	pr_warning("Failed to delete event: %s\n",
+		   strerror_r(-ret, buf, sizeof(buf)));
+	return ret;
+}
diff --git a/tools/perf/util/probe-file.h b/tools/perf/util/probe-file.h
index 18ac9cf51c34..02515ea12f1e 100644
--- a/tools/perf/util/probe-file.h
+++ b/tools/perf/util/probe-file.h
@@ -17,6 +17,7 @@ int probe_file__del_events(int fd, struct strfilter *filter);
 int probe_file__get_events(int fd, struct strfilter *filter,
 				  struct strlist *plist);
 int probe_file__del_strlist(int fd, struct strlist *namelist);
+int probe_file__del_trace_event(int fd, struct probe_trace_event *tev);
 
 
 #endif
-- 
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]


#1221996

From平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com>
Date2015-09-10 10:20 +0200
Message-ID<q75fk-4cM-7@gated-at.bofh.it>
In reply to#1221956
SGkgTmFtaHl1bmcsDQoNCkZyb206IE5hbWh5dW5nIEtpbSBbbWFpbHRvOm5hbWh5dW5nQGdtYWls
LmNvbV0gT24gQmVoYWxmIE9mIE5hbWh5dW5nIEtpbQ0KPg0KPkhpIE1hc2FtaSwNCj4NCj5PbiBU
aHUsIFNlcCAxMCwgMjAxNSBhdCAwNTowMDowN0FNICswMDAwLCDlubPmnb7pm4Xlt7MgLyBISVJB
TUFUVe+8jE1BU0FNSSB3cm90ZToNCj4+ID5Gcm9tOiBOYW1oeXVuZyBLaW0gW21haWx0bzpuYW1o
eXVuZ0BnbWFpbC5jb21dIE9uIEJlaGFsZiBPZiBOYW1oeXVuZyBLaW0NCj4+ID5UaGUgZGVsX3Bl
cmZfcHJvYmVfZXZlbnRzKCkgdXNlcyBzdHJmaWx0ZXIsIGJ1dCBJIHRoaW5rIGl0IGNhbiBiZQ0K
Pj4gPnByb2JsZW1hdGljIGlmIG90aGVyIGluc3RhbmNlcyBvciB1c2VycyBhcmUgdXNpbmcgc2lt
aWxhciBldmVudHMgYXQNCj4+ID50aGUgc2FtZSB0aW1lLg0KPj4NCj4+IFllYWgsIHNpbmNlIHBl
cmYgcHJvYmUgZG9lc24ndCBsb2NrIHRoZSBmdHJhY2UsIHRoZXJlIHNob3VsZCBiZSBhDQo+PiB0
aW1pbmcgYnVnLCBidXQgaXQgY2FuIGJlIGZpeGVkIGVhc2lseSBieSBpZ25vcmluZyAtRU5PRU5U
LiA6KQ0KPg0KPkJ5IGlnbm9yaW5nIC1FTk9FTlQ/ICBBcmUgeW91IHNheWluZyB0aGF0IHRoZXJl
J3MgYSByYWNlIGJldHdlZW4gdHdvDQo+ZGVsZXRlcnM/ICBZZXMsIG9mIGNvdXJzZSwgYnV0IEkg
dGhpbmsgdGhhdCB0aGUgYnVnIHdpbGwgaGl0IGFuIGFkZGVyDQo+YW5kIGEgZGVsZXRlciBlc3Bl
Y2lhbGx5IGlmIGF1dG9tYXRpYyBwcm9iaW5nIGlzIHVzZWQgKGJ5IGVCUEYgYW5kL29yDQo+U0RU
IHJlY29yZGluZykuDQoNClNvLCBJIGRvbid0IHRoaW5rIHdlIG5lZWQgdGhlIGF1dG9tYXRpYyBl
dmVudCByZW1vdmluZy4gSW5zdGVhZCwgSSdkIGxpa2UgdG8NCnN1Z2dlc3QgdG8ga2VlcCBpdCBv
biB0aGUgbGlzdC4NCg0KPldoYXQgYWJvdXQgdGhpcz8NCg0KU2luY2UgcHJvYmUgZXZlbnRzIGFy
ZSBpZGVudGlmaWVkIG9ubHkgYnkgaXRzIG5hbWUsIHN0cmZpbHRlciBzdGlsbCB3b3Jrcy4NCllv
dSBjYW4gcmVtb3ZlIHNwZWNpZmljIGV2ZW50IHdpdGhvdXQgYW55IHdpbGRjYXJkLg0KDQpUaGFu
a3MsDQoNCg0KPkZyb20gNDVkYmEzNWNiMGY1ZmExYjJlNzhmZWM4YzA1ZmFmNWU5YTFiMjAwZSBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj5Gcm9tOiBOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGtl
cm5lbC5vcmc+DQo+RGF0ZTogVGh1LCAxMCBTZXAgMjAxNSAxNToyNToyOCArMDkwMA0KPlN1Ympl
Y3Q6IFtQQVRDSF0gcGVyZiBwcm9iZTogU3VwcG9ydCBkZWxldGluZyB0cmFjZSBldmVudHMgZGly
ZWN0bHkNCj4NCj5DdXJyZW50bHkgZGVsX3BlcmZfcHJvYmVfZXZlbnRzKCkgZGVsZXRlcyBldmVu
dHMgd2hpY2ggbWF0Y2ggdG8gYSBnaXZlbg0KPmZpbHRlci4gIEJ1dCBpdCBtaWdodCBoYXZlIGEg
dGltaW5nIGJ1ZyB3aGVuIG90aGVyIHVzZXJzIGFsc28gc2V0IHByb2Jlcw0KPndpdGggc2ltaWxh
ciBuYW1lcy4gIFNvIGl0J2QgYmUgYmV0dGVyIGRlbGV0aW5nIG91ciBldmVudHMgZGlyZWN0bHkN
Cj5yYXRoZXIgdGhhbiBwYXR0ZXJuIG1hdGNoaW5nLg0KPg0KPlNpbmNlIHRoZSBkZWxfcGVyZl9w
cm9iZV9ldmVudHMoKSBoYXMgbm8gdXNlciBhdCB0aGlzIHRpbWUsIGNoYW5nZSBpdCB0bw0KPnJl
Y2VpdmUgcGVyZl9wcm9iZV9ldmVudCdzLiAgSXQgaXMgbW9yZSBjb25zaXN0ZW50IHRvIG90aGVy
IEFQSXMgYXMgd2VsbC4NCj4NCj5DYzogTWFzYW1pIEhpcmFtYXRzdSA8bWFzYW1pLmhpcmFtYXRz
dS5wdEBoaXRhY2hpLmNvbT4NCj5DYzogV2FuZyBOYW4gPHdhbmduYW4wQGh1YXdlaS5jb20+DQo+
U2lnbmVkLW9mZi1ieTogTmFtaHl1bmcgS2ltIDxuYW1oeXVuZ0BrZXJuZWwub3JnPg0KPi0tLQ0K
PiB0b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYyB8IDMwICsrKysrKysrKysrLS0tLS0tLS0t
LS0tLS0tLS0tLQ0KPiB0b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuaCB8ICAyICstDQo+IHRv
b2xzL3BlcmYvdXRpbC9wcm9iZS1maWxlLmMgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysr
DQo+IHRvb2xzL3BlcmYvdXRpbC9wcm9iZS1maWxlLmggIHwgIDEgKw0KPiA0IGZpbGVzIGNoYW5n
ZWQsIDM3IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQ0KPg0KPmRpZmYgLS1naXQgYS90
b29scy9wZXJmL3V0aWwvcHJvYmUtZXZlbnQuYyBiL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1ldmVu
dC5jDQo+aW5kZXggMmI3OGU4ZjE5YjQ1Li44OGQ3ZWY4N2FiOTkgMTAwNjQ0DQo+LS0tIGEvdG9v
bHMvcGVyZi91dGlsL3Byb2JlLWV2ZW50LmMNCj4rKysgYi90b29scy9wZXJmL3V0aWwvcHJvYmUt
ZXZlbnQuYw0KPkBAIC0yODEwLDM3ICsyODEwLDI5IEBAIGludCBhZGRfcGVyZl9wcm9iZV9ldmVu
dHMoc3RydWN0IHBlcmZfcHJvYmVfZXZlbnQgKnBldnMsIGludCBucGV2cykNCj4gCXJldHVybiBy
ZXQ7DQo+IH0NCj4NCj4taW50IGRlbF9wZXJmX3Byb2JlX2V2ZW50cyhzdHJ1Y3Qgc3RyZmlsdGVy
ICpmaWx0ZXIpDQo+K2ludCBkZWxfcGVyZl9wcm9iZV9ldmVudHMoc3RydWN0IHBlcmZfcHJvYmVf
ZXZlbnQgKnBldnMsIGludCBucGV2cykNCj4gew0KPi0JaW50IHJldCwgcmV0MiwgdWZkID0gLTEs
IGtmZCA9IC0xOw0KPi0JY2hhciAqc3RyID0gc3RyZmlsdGVyX19zdHJpbmcoZmlsdGVyKTsNCj4r
CWludCBpLCBqLCByZXQsIHJldDI7DQo+KwlpbnQgdWZkID0gLTEsIGtmZCA9IC0xOw0KPg0KPi0J
aWYgKCFzdHIpDQo+LQkJcmV0dXJuIC1FSU5WQUw7DQo+LQ0KPi0JLyogR2V0IGN1cnJlbnQgZXZl
bnQgbmFtZXMgKi8NCj4gCXJldCA9IHByb2JlX2ZpbGVfX29wZW5fYm90aCgma2ZkLCAmdWZkLCBQ
Rl9GTF9SVyk7DQo+IAlpZiAocmV0IDwgMCkNCj4tCQlnb3RvIG91dDsNCj4rCQlyZXR1cm4gcmV0
Ow0KPg0KPi0JcmV0ID0gcHJvYmVfZmlsZV9fZGVsX2V2ZW50cyhrZmQsIGZpbHRlcik7DQo+LQlp
ZiAocmV0IDwgMCAmJiByZXQgIT0gLUVOT0VOVCkNCj4tCQlnb3RvIGVycm9yOw0KPisJZm9yIChp
ID0gMDsgaSA8IG5wZXZzOyBpKyspIHsNCj4rCQlpbnQgZmQgPSBwZXZzW2ldLnVwcm9iZXMgPyB1
ZmQgOiBrZmQ7DQo+DQo+LQlyZXQyID0gcHJvYmVfZmlsZV9fZGVsX2V2ZW50cyh1ZmQsIGZpbHRl
cik7DQo+LQlpZiAocmV0MiA8IDAgJiYgcmV0MiAhPSAtRU5PRU5UKSB7DQo+LQkJcmV0ID0gcmV0
MjsNCj4tCQlnb3RvIGVycm9yOw0KPisJCWZvciAoaiA9IDA7IGogPCBwZXZzW2ldLm50ZXZzOyBq
KyspIHsNCj4rCQkJcmV0MiA9IHByb2JlX2ZpbGVfX2RlbF90cmFjZV9ldmVudChmZCwgJnBldnNb
aV0udGV2c1tqXSk7DQo+KwkJCWlmIChyZXQgPT0gMCkNCj4rCQkJCXJldCA9IHJldDI7DQo+KwkJ
fQ0KPiAJfQ0KPi0JcmV0ID0gMDsNCj4NCj4tZXJyb3I6DQo+IAlpZiAoa2ZkID49IDApDQo+IAkJ
Y2xvc2Uoa2ZkKTsNCj4gCWlmICh1ZmQgPj0gMCkNCj4gCQljbG9zZSh1ZmQpOw0KPi1vdXQ6DQo+
LQlmcmVlKHN0cik7DQo+DQo+IAlyZXR1cm4gcmV0Ow0KPiB9DQo+ZGlmZiAtLWdpdCBhL3Rvb2xz
L3BlcmYvdXRpbC9wcm9iZS1ldmVudC5oIGIvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWV2ZW50LmgN
Cj5pbmRleCBiYTkyNmMzMGY4Y2QuLmNiNThiOTgxY2M5MiAxMDA2NDQNCj4tLS0gYS90b29scy9w
ZXJmL3V0aWwvcHJvYmUtZXZlbnQuaA0KPisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1ldmVu
dC5oDQo+QEAgLTE0NSw3ICsxNDUsNyBAQCBleHRlcm4gaW50IGFkZF9wZXJmX3Byb2JlX2V2ZW50
cyhzdHJ1Y3QgcGVyZl9wcm9iZV9ldmVudCAqcGV2cywgaW50IG5wZXZzKTsNCj4gZXh0ZXJuIGlu
dCBjb252ZXJ0X3BlcmZfcHJvYmVfZXZlbnRzKHN0cnVjdCBwZXJmX3Byb2JlX2V2ZW50ICpwZXZz
LCBpbnQgbnBldnMpOw0KPiBleHRlcm4gaW50IGFwcGx5X3BlcmZfcHJvYmVfZXZlbnRzKHN0cnVj
dCBwZXJmX3Byb2JlX2V2ZW50ICpwZXZzLCBpbnQgbnBldnMpOw0KPiBleHRlcm4gdm9pZCBjbGVh
bnVwX3BlcmZfcHJvYmVfZXZlbnRzKHN0cnVjdCBwZXJmX3Byb2JlX2V2ZW50ICpwZXZzLCBpbnQg
bnBldnMpOw0KPi1leHRlcm4gaW50IGRlbF9wZXJmX3Byb2JlX2V2ZW50cyhzdHJ1Y3Qgc3RyZmls
dGVyICpmaWx0ZXIpOw0KPitleHRlcm4gaW50IGRlbF9wZXJmX3Byb2JlX2V2ZW50cyhzdHJ1Y3Qg
cGVyZl9wcm9iZV9ldmVudCAqcGV2cywgaW50IG5wZXZzKTsNCj4NCj4gZXh0ZXJuIGludCBzaG93
X3BlcmZfcHJvYmVfZXZlbnQoY29uc3QgY2hhciAqZ3JvdXAsIGNvbnN0IGNoYXIgKmV2ZW50LA0K
PiAJCQkJIHN0cnVjdCBwZXJmX3Byb2JlX2V2ZW50ICpwZXYsDQo+ZGlmZiAtLWdpdCBhL3Rvb2xz
L3BlcmYvdXRpbC9wcm9iZS1maWxlLmMgYi90b29scy9wZXJmL3V0aWwvcHJvYmUtZmlsZS5jDQo+
aW5kZXggODlkYmViOTJjNjhlLi4zMzRiN2I3NWI1NWIgMTAwNjQ0DQo+LS0tIGEvdG9vbHMvcGVy
Zi91dGlsL3Byb2JlLWZpbGUuYw0KPisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1maWxlLmMN
Cj5AQCAtMzE5LDMgKzMxOSwyNyBAQCBpbnQgcHJvYmVfZmlsZV9fZGVsX2V2ZW50cyhpbnQgZmQs
IHN0cnVjdCBzdHJmaWx0ZXIgKmZpbHRlcikNCj4NCj4gCXJldHVybiByZXQ7DQo+IH0NCj4rDQo+
K2ludCBwcm9iZV9maWxlX19kZWxfdHJhY2VfZXZlbnQoaW50IGZkLCBzdHJ1Y3QgcHJvYmVfdHJh
Y2VfZXZlbnQgKnRldikNCj4rew0KPisJY2hhciBidWZbMTI4XTsNCj4rCWludCByZXQ7DQo+Kw0K
PisJLyogQ29udmVydCBmcm9tIHBlcmYtcHJvYmUgZXZlbnQgdG8gdHJhY2UtcHJvYmUgZXZlbnQg
Ki8NCj4rCXJldCA9IGVfc25wcmludGYoYnVmLCAxMjgsICItOiVzLyVzIiwgdGV2LT5ncm91cCwg
dGV2LT5ldmVudCk7DQo+KwlpZiAocmV0IDwgMCkNCj4rCQlnb3RvIGVycm9yOw0KPisNCj4rCXBy
X2RlYnVnKCJXcml0aW5nIGV2ZW50OiAlc1xuIiwgYnVmKTsNCj4rCXJldCA9IHdyaXRlKGZkLCBi
dWYsIHN0cmxlbihidWYpKTsNCj4rCWlmIChyZXQgPCAwKSB7DQo+KwkJcmV0ID0gLWVycm5vOw0K
PisJCWdvdG8gZXJyb3I7DQo+Kwl9DQo+Kw0KPisJcmV0dXJuIDA7DQo+K2Vycm9yOg0KPisJcHJf
d2FybmluZygiRmFpbGVkIHRvIGRlbGV0ZSBldmVudDogJXNcbiIsDQo+KwkJICAgc3RyZXJyb3Jf
cigtcmV0LCBidWYsIHNpemVvZihidWYpKSk7DQo+KwlyZXR1cm4gcmV0Ow0KPit9DQo+ZGlmZiAt
LWdpdCBhL3Rvb2xzL3BlcmYvdXRpbC9wcm9iZS1maWxlLmggYi90b29scy9wZXJmL3V0aWwvcHJv
YmUtZmlsZS5oDQo+aW5kZXggMThhYzljZjUxYzM0Li4wMjUxNWVhMTJmMWUgMTAwNjQ0DQo+LS0t
IGEvdG9vbHMvcGVyZi91dGlsL3Byb2JlLWZpbGUuaA0KPisrKyBiL3Rvb2xzL3BlcmYvdXRpbC9w
cm9iZS1maWxlLmgNCj5AQCAtMTcsNiArMTcsNyBAQCBpbnQgcHJvYmVfZmlsZV9fZGVsX2V2ZW50
cyhpbnQgZmQsIHN0cnVjdCBzdHJmaWx0ZXIgKmZpbHRlcik7DQo+IGludCBwcm9iZV9maWxlX19n
ZXRfZXZlbnRzKGludCBmZCwgc3RydWN0IHN0cmZpbHRlciAqZmlsdGVyLA0KPiAJCQkJICBzdHJ1
Y3Qgc3RybGlzdCAqcGxpc3QpOw0KPiBpbnQgcHJvYmVfZmlsZV9fZGVsX3N0cmxpc3QoaW50IGZk
LCBzdHJ1Y3Qgc3RybGlzdCAqbmFtZWxpc3QpOw0KPitpbnQgcHJvYmVfZmlsZV9fZGVsX3RyYWNl
X2V2ZW50KGludCBmZCwgc3RydWN0IHByb2JlX3RyYWNlX2V2ZW50ICp0ZXYpOw0KPg0KPg0KPiAj
ZW5kaWYNCj4tLQ0KPjIuNS4wDQoNCg==
--
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]


#1222957

FromNamhyung Kim <namhyung@kernel.org>
Date2015-09-11 18:40 +0200
Message-ID<q7zwJ-78E-5@gated-at.bofh.it>
In reply to#1221996
On Thu, Sep 10, 2015 at 08:10:16AM +0000, 平松雅巳 / HIRAMATU,MASAMI wrote:
> Hi Namhyung,
> 
> From: Namhyung Kim [mailto:namhyung@gmail.com] On Behalf Of Namhyung Kim
> >
> >Hi Masami,
> >
> >On Thu, Sep 10, 2015 at 05:00:07AM +0000, 平松雅巳 / HIRAMATU,MASAMI wrote:
> >> >From: Namhyung Kim [mailto:namhyung@gmail.com] On Behalf Of Namhyung Kim
> >> >The del_perf_probe_events() uses strfilter, but I think it can be
> >> >problematic if other instances or users are using similar events at
> >> >the same time.
> >>
> >> Yeah, since perf probe doesn't lock the ftrace, there should be a
> >> timing bug, but it can be fixed easily by ignoring -ENOENT. :)
> >
> >By ignoring -ENOENT?  Are you saying that there's a race between two
> >deleters?  Yes, of course, but I think that the bug will hit an adder
> >and a deleter especially if automatic probing is used (by eBPF and/or
> >SDT recording).
> 
> So, I don't think we need the automatic event removing. Instead, I'd like to
> suggest to keep it on the list.

But why?  Do you want reuse the probes for next record session?

I think if something is generated automatically, it should be removed
automatically..

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] | [standalone]


Back to top | Article view | linux.kernel


csiph-web