* [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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).