diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-02-22 17:26:24 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-02-22 17:26:24 +0100 |
commit | 7e74efcf76c16f851df5c838c143c4a1865ea9fa (patch) | |
tree | 71aba57213c2f5c5a47fd1ab93d4fea100f68008 /tools/perf/tests/sample-parsing.c | |
parent | e9d9768824a18212712ae3afbebd5bfef05176f4 (diff) | |
parent | a15ad2f5360c821f030c53266ebf467738249c68 (diff) |
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
User Visible:
* Allow setting preferred callchain method in .perfconfig (Jiri Olsa)
* Show in what binaries/modules 'perf probe's are set (Masami Hiramatsu)
* Support distro-style debuginfo for uprobe in 'perf probe' (Masami Hiramatsu)
Developer stuff:
* Move some hashing and fs related code from tools/perf/util/
to tools/lib/ so that it can be used by more tools/ living
utilities (Borislav Petkov)
* Prepare DWARF unwinding code for using an elfutils alternative
unwinding library (Jiri Olsa)
* Fix DWARF unwind max_stack processing (Jiri Olsa)
* Add dwarf unwind 'perf test' entry (Jiri Olsa)
* 'perf probe' improvements including memory leak fixes,
sharing the intlist class with other tools, uprobes/kprobes
code sharing and use of ref_reloc_sym (Masami Hiramatsu)
* Shorten sample symbol resolving by adding cpumode to
struct addr_location (Arnaldo Carvalho de Melo)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/tests/sample-parsing.c')
-rw-r--r-- | tools/perf/tests/sample-parsing.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/tools/perf/tests/sample-parsing.c b/tools/perf/tests/sample-parsing.c index 1b677202638..0014d3c8c21 100644 --- a/tools/perf/tests/sample-parsing.c +++ b/tools/perf/tests/sample-parsing.c @@ -22,8 +22,8 @@ } while (0) static bool samples_same(const struct perf_sample *s1, - const struct perf_sample *s2, u64 type, u64 regs_user, - u64 read_format) + const struct perf_sample *s2, + u64 type, u64 read_format) { size_t i; @@ -95,8 +95,9 @@ static bool samples_same(const struct perf_sample *s1, } if (type & PERF_SAMPLE_REGS_USER) { - size_t sz = hweight_long(regs_user) * sizeof(u64); + size_t sz = hweight_long(s1->user_regs.mask) * sizeof(u64); + COMP(user_regs.mask); COMP(user_regs.abi); if (s1->user_regs.abi && (!s1->user_regs.regs || !s2->user_regs.regs || @@ -174,6 +175,7 @@ static int do_test(u64 sample_type, u64 sample_regs_user, u64 read_format) .branch_stack = &branch_stack.branch_stack, .user_regs = { .abi = PERF_SAMPLE_REGS_ABI_64, + .mask = sample_regs_user, .regs = user_regs, }, .user_stack = { @@ -201,8 +203,7 @@ static int do_test(u64 sample_type, u64 sample_regs_user, u64 read_format) sample.read.one.id = 99; } - sz = perf_event__sample_event_size(&sample, sample_type, - sample_regs_user, read_format); + sz = perf_event__sample_event_size(&sample, sample_type, read_format); bufsz = sz + 4096; /* Add a bit for overrun checking */ event = malloc(bufsz); if (!event) { @@ -215,8 +216,7 @@ static int do_test(u64 sample_type, u64 sample_regs_user, u64 read_format) event->header.misc = 0; event->header.size = sz; - err = perf_event__synthesize_sample(event, sample_type, - sample_regs_user, read_format, + err = perf_event__synthesize_sample(event, sample_type, read_format, &sample, false); if (err) { pr_debug("%s failed for sample_type %#"PRIx64", error %d\n", @@ -244,8 +244,7 @@ static int do_test(u64 sample_type, u64 sample_regs_user, u64 read_format) goto out_free; } - if (!samples_same(&sample, &sample_out, sample_type, - sample_regs_user, read_format)) { + if (!samples_same(&sample, &sample_out, sample_type, read_format)) { pr_debug("parsing failed for sample_type %#"PRIx64"\n", sample_type); goto out_free; |