Re: [PATCH 6/7] perf, tool: Fix endianity trick for adds_featuresbitmask

From: David Ahern
Date: Thu May 24 2012 - 11:32:15 EST


On 5/23/12 11:59 AM, Jiri Olsa wrote:
On Tue, May 22, 2012 at 09:48:09AM -0600, David Ahern wrote:
On 5/22/12 2:41 AM, Jiri Olsa wrote:

hm, any special details for the record? because I'm sure I tested this way..

I'll retest, thanks
jirka


The attached fixes it.

commit 1353676ca6551a0165df030784ada20ebea73f73
Author: David Ahern<dsahern@xxxxxxxxx>
Date: Tue May 22 09:40:17 2012 -0600

perf, tool: Fix endianity swapping for adds_features bitmask

Based on Jiri's latest attempt:
https://lkml.org/lkml/2012/5/16/61

Basically, adds_features should be byte swapped assuming unsigned
longs are either 8-bytes (u64) or 4-bytes (u32).

Fixes 32-bit ppc dumping 64-bit x86 feature data:
========
captured on: Sun May 20 19:23:23 2012
hostname : nxos-vdc-dev3
os release : 3.4.0-rc7+
perf version : 3.4.rc4.137.g978da3
arch : x86_64
nrcpus online : 16
nrcpus avail : 16
cpudesc : Intel(R) Xeon(R) CPU E5540 @ 2.53GHz
cpuid : GenuineIntel,6,26,5
total memory : 24680324 kB
...

Verified 64-bit x86 can still dump feature data for 32-bit ppc.

Signed-off-by: David Ahern<dsahern@xxxxxxxxx>

I got the header properly displayed with this patch, but I'm getting
following diffs in the perf report output (ppc32 vs x86_64):
(after moving origin perf archive build-id cache to target system)

- 0.00% perf [ext4] [k] 0x0005b318
+ 0.00% perf [ext4] [k] .cleanup_module

- 0.00% yes [kernel.kallsyms] [k] .sys_write
+ 0.00% yes [kernel.kallsyms] [k] .SyS_write

^^^ this one is particularly disturbing ;)

I guess it's unrelated to the header stuff which your patch fixes
properly I think, but I got small conflict rebasing this to current tip

Reviewed-by: Jiri Olsa<jolsa@xxxxxxxxxx>

That is odd... and if you are getting that much you are ahead of me. When I analyze an x86_64 file on ppc32 all symbols show as kernel.kallsyms dso.

The patch applies cleanly for me on latest acme/core:
$ patch -p1 < perf-swap-features.patch
patching file tools/perf/util/header.c
patching file tools/perf/util/include/linux/bitops.h
patching file tools/perf/util/session.c
patching file tools/perf/util/session.h

David
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/