* [PATCH 1/2] perf header: Fix a typo on evsel @ 2012-09-06 2:10 Namhyung Kim 2012-09-06 2:10 ` [PATCH 2/2] perf header: Prepare tracepoint events regardless of name Namhyung Kim 2012-09-07 6:12 ` [tip:perf/core] perf header: Fix a typo on evsel tip-bot for Namhyung Kim 0 siblings, 2 replies; 5+ messages in thread From: Namhyung Kim @ 2012-09-06 2:10 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, LKML, David Ahern, Namhyung Kim From: Namhyung Kim <namhyung.kim@lge.com> For checking return value of the strdup, 'event' should be 'evsel'. Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- tools/perf/util/header.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 06ecd577d1b8..eb7a8da2f4f5 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -2512,7 +2512,7 @@ static int perf_evsel__set_tracepoint_name(struct perf_evsel *evsel, snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name); evsel->name = strdup(bf); - if (event->name == NULL) + if (evsel->name == NULL) return -1; evsel->tp_format = event; -- 1.7.11.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] perf header: Prepare tracepoint events regardless of name 2012-09-06 2:10 [PATCH 1/2] perf header: Fix a typo on evsel Namhyung Kim @ 2012-09-06 2:10 ` Namhyung Kim 2012-09-06 13:51 ` Arnaldo Carvalho de Melo 2012-09-07 6:12 ` [tip:perf/core] " tip-bot for Namhyung Kim 2012-09-07 6:12 ` [tip:perf/core] perf header: Fix a typo on evsel tip-bot for Namhyung Kim 1 sibling, 2 replies; 5+ messages in thread From: Namhyung Kim @ 2012-09-06 2:10 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, LKML, David Ahern, Namhyung Kim From: Namhyung Kim <namhyung.kim@lge.com> Current perf_evlist__set_tracepoint_names is a misnomer because it finds and sets correspoding event_format in addition to the name. So skipping it when a event has set name already caused a trouble. Rename it and set name only a event doesn't have one. Reported-by: David Ahern <dsahern@gmail.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> --- Arnaldo, I made it incremental for your convenience. But if you want to drop my previous one I can resend with it. Please let me know your preference. :) tools/perf/util/header.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index eb7a8da2f4f5..19be34145a18 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -2500,33 +2500,39 @@ static int read_attr(int fd, struct perf_header *ph, return ret <= 0 ? -1 : 0; } -static int perf_evsel__set_tracepoint_name(struct perf_evsel *evsel, - struct pevent *pevent) +static int perf_evsel__prepare_tracepoint_event(struct perf_evsel *evsel, + struct pevent *pevent) { - struct event_format *event = pevent_find_event(pevent, - evsel->attr.config); + struct event_format *event; char bf[128]; + /* already prepared */ + if (evsel->tp_format) + return 0; + + event = pevent_find_event(pevent, evsel->attr.config); if (event == NULL) return -1; - snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name); - evsel->name = strdup(bf); - if (evsel->name == NULL) - return -1; + if (!evsel->name) { + snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name); + evsel->name = strdup(bf); + if (evsel->name == NULL) + return -1; + } evsel->tp_format = event; return 0; } -static int perf_evlist__set_tracepoint_names(struct perf_evlist *evlist, - struct pevent *pevent) +static int perf_evlist__prepare_tracepoint_events(struct perf_evlist *evlist, + struct pevent *pevent) { struct perf_evsel *pos; list_for_each_entry(pos, &evlist->entries, node) { - if (pos->attr.type == PERF_TYPE_TRACEPOINT && !pos->name && - perf_evsel__set_tracepoint_name(pos, pevent)) + if (pos->attr.type == PERF_TYPE_TRACEPOINT && + perf_evsel__prepare_tracepoint_event(pos, pevent)) return -1; } @@ -2614,7 +2620,8 @@ int perf_session__read_header(struct perf_session *session, int fd) lseek(fd, header->data_offset, SEEK_SET); - if (perf_evlist__set_tracepoint_names(session->evlist, session->pevent)) + if (perf_evlist__prepare_tracepoint_events(session->evlist, + session->pevent)) goto out_delete_evlist; header->frozen = 1; @@ -2848,7 +2855,8 @@ int perf_event__process_tracing_data(union perf_event *event, if (size_read + padding != size) die("tracing data size mismatch"); - perf_evlist__set_tracepoint_names(session->evlist, session->pevent); + perf_evlist__prepare_tracepoint_events(session->evlist, + session->pevent); return size_read + padding; } -- 1.7.11.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] perf header: Prepare tracepoint events regardless of name 2012-09-06 2:10 ` [PATCH 2/2] perf header: Prepare tracepoint events regardless of name Namhyung Kim @ 2012-09-06 13:51 ` Arnaldo Carvalho de Melo 2012-09-07 6:12 ` [tip:perf/core] " tip-bot for Namhyung Kim 1 sibling, 0 replies; 5+ messages in thread From: Arnaldo Carvalho de Melo @ 2012-09-06 13:51 UTC (permalink / raw) To: Namhyung Kim Cc: Peter Zijlstra, Paul Mackerras, Ingo Molnar, LKML, David Ahern, Namhyung Kim Em Thu, Sep 06, 2012 at 11:10:46AM +0900, Namhyung Kim escreveu: > From: Namhyung Kim <namhyung.kim@lge.com> > > Current perf_evlist__set_tracepoint_names is a misnomer because it > finds and sets correspoding event_format in addition to the name. So > skipping it when a event has set name already caused a trouble. > > Rename it and set name only a event doesn't have one. > > Reported-by: David Ahern <dsahern@gmail.com> > Signed-off-by: Namhyung Kim <namhyung@kernel.org> > --- > Arnaldo, I made it incremental for your convenience. But if you want > to drop my previous one I can resend with it. Please let me know your > preference. :) I applied this 2-patch series now, thanks. - Arnaldo ^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:perf/core] perf header: Prepare tracepoint events regardless of name 2012-09-06 2:10 ` [PATCH 2/2] perf header: Prepare tracepoint events regardless of name Namhyung Kim 2012-09-06 13:51 ` Arnaldo Carvalho de Melo @ 2012-09-07 6:12 ` tip-bot for Namhyung Kim 1 sibling, 0 replies; 5+ messages in thread From: tip-bot for Namhyung Kim @ 2012-09-07 6:12 UTC (permalink / raw) To: linux-tip-commits Cc: acme, linux-kernel, paulus, hpa, mingo, a.p.zijlstra, namhyung.kim, namhyung, dsahern, tglx Commit-ID: 831394bdd9dd3ac1661336505c7cbdfd786d8cd4 Gitweb: http://git.kernel.org/tip/831394bdd9dd3ac1661336505c7cbdfd786d8cd4 Author: Namhyung Kim <namhyung.kim@lge.com> AuthorDate: Thu, 6 Sep 2012 11:10:46 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 6 Sep 2012 10:51:02 -0300 perf header: Prepare tracepoint events regardless of name Current perf_evlist__set_tracepoint_names is a misnomer because it finds and sets correspoding event_format in addition to the name. So skipping it when a event has set name already caused a trouble. Rename it and set name only a event doesn't have one. Reported-by: David Ahern <dsahern@gmail.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1346897446-16569-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/header.c | 36 ++++++++++++++++++++++-------------- 1 files changed, 22 insertions(+), 14 deletions(-) diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 8b0b873..d07bc13 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -2295,33 +2295,39 @@ static int read_attr(int fd, struct perf_header *ph, return ret <= 0 ? -1 : 0; } -static int perf_evsel__set_tracepoint_name(struct perf_evsel *evsel, - struct pevent *pevent) +static int perf_evsel__prepare_tracepoint_event(struct perf_evsel *evsel, + struct pevent *pevent) { - struct event_format *event = pevent_find_event(pevent, - evsel->attr.config); + struct event_format *event; char bf[128]; + /* already prepared */ + if (evsel->tp_format) + return 0; + + event = pevent_find_event(pevent, evsel->attr.config); if (event == NULL) return -1; - snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name); - evsel->name = strdup(bf); - if (evsel->name == NULL) - return -1; + if (!evsel->name) { + snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name); + evsel->name = strdup(bf); + if (evsel->name == NULL) + return -1; + } evsel->tp_format = event; return 0; } -static int perf_evlist__set_tracepoint_names(struct perf_evlist *evlist, - struct pevent *pevent) +static int perf_evlist__prepare_tracepoint_events(struct perf_evlist *evlist, + struct pevent *pevent) { struct perf_evsel *pos; list_for_each_entry(pos, &evlist->entries, node) { - if (pos->attr.type == PERF_TYPE_TRACEPOINT && !pos->name && - perf_evsel__set_tracepoint_name(pos, pevent)) + if (pos->attr.type == PERF_TYPE_TRACEPOINT && + perf_evsel__prepare_tracepoint_event(pos, pevent)) return -1; } @@ -2409,7 +2415,8 @@ int perf_session__read_header(struct perf_session *session, int fd) lseek(fd, header->data_offset, SEEK_SET); - if (perf_evlist__set_tracepoint_names(session->evlist, session->pevent)) + if (perf_evlist__prepare_tracepoint_events(session->evlist, + session->pevent)) goto out_delete_evlist; header->frozen = 1; @@ -2643,7 +2650,8 @@ int perf_event__process_tracing_data(union perf_event *event, if (size_read + padding != size) die("tracing data size mismatch"); - perf_evlist__set_tracepoint_names(session->evlist, session->pevent); + perf_evlist__prepare_tracepoint_events(session->evlist, + session->pevent); return size_read + padding; } ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [tip:perf/core] perf header: Fix a typo on evsel 2012-09-06 2:10 [PATCH 1/2] perf header: Fix a typo on evsel Namhyung Kim 2012-09-06 2:10 ` [PATCH 2/2] perf header: Prepare tracepoint events regardless of name Namhyung Kim @ 2012-09-07 6:12 ` tip-bot for Namhyung Kim 1 sibling, 0 replies; 5+ messages in thread From: tip-bot for Namhyung Kim @ 2012-09-07 6:12 UTC (permalink / raw) To: linux-tip-commits Cc: acme, linux-kernel, paulus, hpa, mingo, a.p.zijlstra, namhyung.kim, namhyung, dsahern, tglx Commit-ID: ae42c6bb9300cf25990bd15f1bd6ee38598f7483 Gitweb: http://git.kernel.org/tip/ae42c6bb9300cf25990bd15f1bd6ee38598f7483 Author: Namhyung Kim <namhyung.kim@lge.com> AuthorDate: Thu, 6 Sep 2012 11:10:45 +0900 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 6 Sep 2012 10:49:03 -0300 perf header: Fix a typo on evsel For checking return value of the strdup, 'event' should be 'evsel'. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1346897446-16569-1-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/header.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 43425b7..8b0b873 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -2307,7 +2307,7 @@ static int perf_evsel__set_tracepoint_name(struct perf_evsel *evsel, snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name); evsel->name = strdup(bf); - if (event->name == NULL) + if (evsel->name == NULL) return -1; evsel->tp_format = event; ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-09-07 6:13 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-06 2:10 [PATCH 1/2] perf header: Fix a typo on evsel Namhyung Kim 2012-09-06 2:10 ` [PATCH 2/2] perf header: Prepare tracepoint events regardless of name Namhyung Kim 2012-09-06 13:51 ` Arnaldo Carvalho de Melo 2012-09-07 6:12 ` [tip:perf/core] " tip-bot for Namhyung Kim 2012-09-07 6:12 ` [tip:perf/core] perf header: Fix a typo on evsel tip-bot for Namhyung Kim
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.