* [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>
---
| 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--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. :)
| 36 ++++++++++++++++++++++--------------
1 file changed, 22 insertions(+), 14 deletions(-)
--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: 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>
---
| 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
--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
* [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>
---
| 36 ++++++++++++++++++++++--------------
1 files changed, 22 insertions(+), 14 deletions(-)
--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
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.