perf tools: Fix endian conversion reading event attr from file header
authorDavid Ahern <dsahern@gmail.com>
Fri, 15 Jul 2011 18:34:09 +0000 (12:34 -0600)
committerIngo Molnar <mingo@elte.hu>
Thu, 21 Jul 2011 07:57:36 +0000 (09:57 +0200)
commiteda3913bb70ecebac13adccffe1e7f96e93cee02
tree832f84f625dcfcf30eeb0ca88d58fe7774f4327e
parent0111919da268e1ced315e009ad0d0435a2fb32ac
perf tools: Fix endian conversion reading event attr from file header

The perf_event_attr struct has two __u32's at the top and
they need to be swapped individually.

With this change I was able to analyze a perf.data collected in a
32-bit PPC VM on an x86 system. I tested both 32-bit and 64-bit
binaries for the Intel analysis side; both read the PPC perf.data
file correctly.

-v2:
 - changed the existing perf_event__attr_swap() to swap only elements
   of perf_event_attr and exported it for use in swapping the
   attributes in the file header
 - updated swap_ops used for processing events

Signed-off-by: David Ahern <dsahern@gmail.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: acme@ghostprotocols.net
Cc: peterz@infradead.org
Cc: paulus@samba.org
Cc: <stable@kernel.org>
Link: http://lkml.kernel.org/r/1310754849-12474-1-git-send-email-dsahern@gmail.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
tools/perf/util/header.c
tools/perf/util/session.c
tools/perf/util/session.h