Re: [PATCH 4/7] perf, tool: Handle endianity swap on sample_id_allheader data

From: David Ahern
Date: Mon May 21 2012 - 23:35:55 EST


On 5/16/12 12:59 AM, Jiri Olsa wrote:
Adding endianity swapping for event header attached via sample_id_all.

Currently we dont do that and it's causing wrong data to be read when
running report on architecture with different endianity than the record.

Note, running following to test perf endianity handling:
test 1)
- origin system:
# perf record -a -- sleep 10 (any perf record will do)
# perf report> report.origin
# perf archive perf.data

- copy the perf.data, report.origin and perf.data.tar.bz2
to a target system and run:
# tar xjvf perf.data.tar.bz2 -C ~/.debug
# perf report> report.target
# diff -u report.origin report.target

- the diff should produce no output
(besides some white space stuff and possibly different
date/TZ output)

test 2)
- origin system:
# perf record -ag -fo /tmp/perf.data -- sleep 1
- mount origin system root to the target system on /mnt/origin
- target system:
# perf script --symfs /mnt/origin -I -i /mnt/origin/tmp/perf.data \
--kallsyms /mnt/origin/proc/kallsyms
- complete perf.data header is displayed

Signed-off-by: Jiri Olsa<jolsa@xxxxxxxxxx>

The code change is fine, but the commit message could use some additions: for example, what does the current output look like and how does the patch change it.

For example, perf is currently able to process 32-bit PPC samples on 32-bit and 64-bit x86 -- that's the use case I have and it works. So an example of the affects of this patch for the commit log would be helpful.

Code wise:
Reviewed-by and Tested-by: David Ahern <dsahern@xxxxxxxxx>
--
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/