All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: acme@redhat.com, a.p.zijlstra@chello.nl, mingo@elte.hu,
	paulus@samba.org, cjashfor@linux.vnet.ibm.com,
	fweisbec@gmail.com
Cc: linux-kernel@vger.kernel.org, dsahern@gmail.com,
	Caspar Zhang <czhang@redhat.com>
Subject: [PATCHv4 0/7] perf, tool: Fix endian issues
Date: Wed, 16 May 2012 08:59:01 +0200	[thread overview]
Message-ID: <1337151548-2396-1-git-send-email-jolsa@redhat.com> (raw)

hi,
sending fixies to properly handle perf.data endians.

David,
could you please rerun your test? I tried it on my setup and
it works fine.


v4 changes:
  - fixed patch 6/7 which was broken for -fstrict-aliasing related optimization
  - added patch 3/7 and 7/7

v3 changes:
  - added patch 5 to fix addons bitmask handling

v2 changes:
  - added patches 3 and 4 to handle sample_id_all header endianity


Attached patches:
  1/7 perf, tool: Handle different endians properly during symbol load
  2/7 perf, tool: Carry perf_event_attr bitfield throught different endians
  3/7 perf, tool: Add union u64_swap type for swapping u64 data
  4/7 perf, tool: Handle endianity swap on sample_id_all header data
  5/7 perf, tool: Fix 32 bit values endianity swap for sample_id_all header
  6/7 perf, tool: Fix endianity trick for adds_features bitmask
  7/7 perf, tool: Fix callchain ip printf


Tested by running following usecases:
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 

test 3)
  - tested with old perf.data version, worked proplerly

Tested by above usecase cross following architectures:
  i386, x86_64, s390x, ppc64, ppc32

Big thank to Caspar Zhang who verified this within RH QE testsuites.

thanks,
jirka

CC: Caspar Zhang <czhang@redhat.com>
---
 tools/perf/util/evsel.c                |   39 ++++++++-----
 tools/perf/util/header.c               |   21 +++++--
 tools/perf/util/hist.c                 |    2 +-
 tools/perf/util/include/linux/bitops.h |    1 +
 tools/perf/util/session.c              |  101 ++++++++++++++++++++++++++++----
 tools/perf/util/symbol.c               |   33 ++++++++++-
 tools/perf/util/symbol.h               |   30 +++++++++
 tools/perf/util/types.h                |    5 ++
 8 files changed, 198 insertions(+), 34 deletions(-)

             reply	other threads:[~2012-05-16  6:59 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-16  6:59 Jiri Olsa [this message]
2012-05-16  6:59 ` [PATCH 1/7] perf, tool: Handle different endians properly during symbol load Jiri Olsa
2012-05-22  3:26   ` David Ahern
2012-05-16  6:59 ` [PATCH 2/7] perf, tool: Carry perf_event_attr bitfield throught different endians Jiri Olsa
2012-05-22  3:29   ` David Ahern
2012-05-23 15:26   ` [tip:perf/core] perf tools: " tip-bot for Jiri Olsa
2012-05-16  6:59 ` [PATCH 3/7] perf, tool: Add union u64_swap type for swapping u64 data Jiri Olsa
2012-05-22  3:29   ` David Ahern
2012-05-23 15:27   ` [tip:perf/core] perf tools: " tip-bot for Jiri Olsa
2012-05-16  6:59 ` [PATCH 4/7] perf, tool: Handle endianity swap on sample_id_all header data Jiri Olsa
2012-05-22  3:35   ` David Ahern
2012-05-16  6:59 ` [PATCH 5/7] perf, tool: Fix 32 bit values endianity swap for sample_id_all header Jiri Olsa
2012-05-22  4:38   ` David Ahern
2012-05-22 15:53     ` Arnaldo Carvalho de Melo
2012-05-16  6:59 ` [PATCH 6/7] perf, tool: Fix endianity trick for adds_features bitmask Jiri Olsa
2012-05-22  4:38   ` David Ahern
2012-05-22  8:41     ` Jiri Olsa
2012-05-22 15:48       ` David Ahern
2012-05-23 17:59         ` Jiri Olsa
2012-05-24 15:32           ` David Ahern
2012-05-24 19:48             ` Jiri Olsa
2012-06-15 19:10         ` [tip:perf/urgent] perf tools: Fix endianity swapping " tip-bot for David Ahern
2012-05-16  6:59 ` [PATCH 7/7] perf, tool: Fix callchain ip printf Jiri Olsa
2012-05-21  7:39   ` [tip:perf/core] perf hists: Fix callchain ip printf format tip-bot for Jiri Olsa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1337151548-2396-1-git-send-email-jolsa@redhat.com \
    --to=jolsa@redhat.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=cjashfor@linux.vnet.ibm.com \
    --cc=czhang@redhat.com \
    --cc=dsahern@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.