* [PATCH] perf tool: Fix cross-endian analysis
@ 2015-04-09 20:15 David Ahern
2015-04-10 8:27 ` Jiri Olsa
2015-04-11 6:37 ` [tip:perf/core] perf tools: " tip-bot for David Ahern
0 siblings, 2 replies; 5+ messages in thread
From: David Ahern @ 2015-04-09 20:15 UTC (permalink / raw)
To: acme; +Cc: linux-kernel, David Ahern, Jiri Olsa, Namhyung Kim
Trying to analyze a big endian data file on little endian system
fails with the error:
0xa9b40 [0x70]: failed to process type: 9
The problem is that header parsing is not done correctly because
the file attributes are not swapped. Make it so. With this patch
able to analyze a sparc64 data file on x86_64.
Signed-off-by: David Ahern <david.ahern@oracle.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
---
| 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index e38cf62..45b7e72 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2586,8 +2586,11 @@ int perf_session__read_header(struct perf_session *session)
if (read_attr(fd, header, &f_attr) < 0)
goto out_errno;
- if (header->needs_swap)
+ if (header->needs_swap) {
+ f_attr.ids.size = bswap_64(f_attr.ids.size);
+ f_attr.ids.offset = bswap_64(f_attr.ids.offset);
perf_event__attr_swap(&f_attr.attr);
+ }
tmp = lseek(fd, 0, SEEK_CUR);
evsel = perf_evsel__new(&f_attr.attr);
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] perf tool: Fix cross-endian analysis
2015-04-09 20:15 [PATCH] perf tool: Fix cross-endian analysis David Ahern
@ 2015-04-10 8:27 ` Jiri Olsa
2015-04-10 12:49 ` Arnaldo Carvalho de Melo
2015-04-10 13:52 ` David Ahern
2015-04-11 6:37 ` [tip:perf/core] perf tools: " tip-bot for David Ahern
1 sibling, 2 replies; 5+ messages in thread
From: Jiri Olsa @ 2015-04-10 8:27 UTC (permalink / raw)
To: David Ahern; +Cc: acme, linux-kernel, Jiri Olsa, Namhyung Kim
On Thu, Apr 09, 2015 at 04:15:46PM -0400, David Ahern wrote:
> Trying to analyze a big endian data file on little endian system
> fails with the error:
> 0xa9b40 [0x70]: failed to process type: 9
>
> The problem is that header parsing is not done correctly because
> the file attributes are not swapped. Make it so. With this patch
> able to analyze a sparc64 data file on x86_64.
>
> Signed-off-by: David Ahern <david.ahern@oracle.com>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> ---
> tools/perf/util/header.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> index e38cf62..45b7e72 100644
> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -2586,8 +2586,11 @@ int perf_session__read_header(struct perf_session *session)
> if (read_attr(fd, header, &f_attr) < 0)
> goto out_errno;
>
> - if (header->needs_swap)
> + if (header->needs_swap) {
> + f_attr.ids.size = bswap_64(f_attr.ids.size);
> + f_attr.ids.offset = bswap_64(f_attr.ids.offset);
> perf_event__attr_swap(&f_attr.attr);
> + }
so people do actually use it ;-)
Acked-by: Jiri Olsa <jolsa@kernel.org>
thanks,
jirka
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf tool: Fix cross-endian analysis
2015-04-10 8:27 ` Jiri Olsa
@ 2015-04-10 12:49 ` Arnaldo Carvalho de Melo
2015-04-10 13:52 ` David Ahern
1 sibling, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2015-04-10 12:49 UTC (permalink / raw)
To: Jiri Olsa; +Cc: David Ahern, linux-kernel, Jiri Olsa, Namhyung Kim
Em Fri, Apr 10, 2015 at 10:27:26AM +0200, Jiri Olsa escreveu:
> On Thu, Apr 09, 2015 at 04:15:46PM -0400, David Ahern wrote:
> > Trying to analyze a big endian data file on little endian system
> > fails with the error:
> > 0xa9b40 [0x70]: failed to process type: 9
> >
> > The problem is that header parsing is not done correctly because
> > the file attributes are not swapped. Make it so. With this patch
> > able to analyze a sparc64 data file on x86_64.
> >
> > Signed-off-by: David Ahern <david.ahern@oracle.com>
> > Cc: Jiri Olsa <jolsa@kernel.org>
> > Cc: Namhyung Kim <namhyung@kernel.org>
> > ---
> > tools/perf/util/header.c | 5 ++++-
> > 1 files changed, 4 insertions(+), 1 deletions(-)
> >
> > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
> > index e38cf62..45b7e72 100644
> > --- a/tools/perf/util/header.c
> > +++ b/tools/perf/util/header.c
> > @@ -2586,8 +2586,11 @@ int perf_session__read_header(struct perf_session *session)
> > if (read_attr(fd, header, &f_attr) < 0)
> > goto out_errno;
> >
> > - if (header->needs_swap)
> > + if (header->needs_swap) {
> > + f_attr.ids.size = bswap_64(f_attr.ids.size);
> > + f_attr.ids.offset = bswap_64(f_attr.ids.offset);
> > perf_event__attr_swap(&f_attr.attr);
> > + }
>
> so people do actually use it ;-)
>
> Acked-by: Jiri Olsa <jolsa@kernel.org>
Thanks, applied.
- Arnaldo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] perf tool: Fix cross-endian analysis
2015-04-10 8:27 ` Jiri Olsa
2015-04-10 12:49 ` Arnaldo Carvalho de Melo
@ 2015-04-10 13:52 ` David Ahern
1 sibling, 0 replies; 5+ messages in thread
From: David Ahern @ 2015-04-10 13:52 UTC (permalink / raw)
To: Jiri Olsa; +Cc: acme, linux-kernel, Jiri Olsa, Namhyung Kim
On 4/10/15 2:27 AM, Jiri Olsa wrote:
> so people do actually use it;-)
not when it's broken :-)
I've had to fix this a few times over the years, but before ppc on x86
with top of tree was not frequent enough. sparc on x86 will be.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip:perf/core] perf tools: Fix cross-endian analysis
2015-04-09 20:15 [PATCH] perf tool: Fix cross-endian analysis David Ahern
2015-04-10 8:27 ` Jiri Olsa
@ 2015-04-11 6:37 ` tip-bot for David Ahern
1 sibling, 0 replies; 5+ messages in thread
From: tip-bot for David Ahern @ 2015-04-11 6:37 UTC (permalink / raw)
To: linux-tip-commits
Cc: mingo, david.ahern, jolsa, linux-kernel, tglx, namhyung, acme, hpa
Commit-ID: 1060ab857f64f33a9445881fd31fa91470aeb622
Gitweb: http://git.kernel.org/tip/1060ab857f64f33a9445881fd31fa91470aeb622
Author: David Ahern <david.ahern@oracle.com>
AuthorDate: Thu, 9 Apr 2015 16:15:46 -0400
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Fri, 10 Apr 2015 10:13:58 -0300
perf tools: Fix cross-endian analysis
Trying to analyze a big endian data file on little endian system fails
with the error:
0xa9b40 [0x70]: failed to process type: 9
The problem is that header parsing is not done correctly because the
file attributes are not swapped. Make it so. With this patch able to
analyze a sparc64 data file on x86_64.
Signed-off-by: David Ahern <david.ahern@oracle.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1428610546-178789-1-git-send-email-david.ahern@oracle.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
| 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index fff3b2a..918fd8a 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2504,8 +2504,11 @@ int perf_session__read_header(struct perf_session *session)
if (read_attr(fd, header, &f_attr) < 0)
goto out_errno;
- if (header->needs_swap)
+ if (header->needs_swap) {
+ f_attr.ids.size = bswap_64(f_attr.ids.size);
+ f_attr.ids.offset = bswap_64(f_attr.ids.offset);
perf_event__attr_swap(&f_attr.attr);
+ }
tmp = lseek(fd, 0, SEEK_CUR);
evsel = perf_evsel__new(&f_attr.attr);
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-04-11 6:38 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-09 20:15 [PATCH] perf tool: Fix cross-endian analysis David Ahern
2015-04-10 8:27 ` Jiri Olsa
2015-04-10 12:49 ` Arnaldo Carvalho de Melo
2015-04-10 13:52 ` David Ahern
2015-04-11 6:37 ` [tip:perf/core] perf tools: " tip-bot for David Ahern
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.