Em Wed, May 31, 2017 at 01:35:57PM +0200, Jiri Olsa escreveu: > The s390 architecture maps sys_mmap (nr 90) into sys_old_mmap. > For this reason perf trace can't find the proper syscall event > to get args format from and displays it wrong as 'continued'. > > To fix that fill "alias" field with "old_mmap" for trace's mmap > record to get the correct translation.
Ok, I'll add this, but at some point we'll need to do this by looking at the perf.data header when cross-tracing on a non-live, perf.data based setup. - Arnaldo > Before: > 0.042 ( 0.011 ms): vest/43052 fstat(statbuf: 0x3ffff89fd90 > ) = 0 > 0.042 ( 0.028 ms): vest/43052 ... [continued]: mmap()) = 0x3fffd6e2000 > 0.072 ( 0.025 ms): vest/43052 read(buf: 0x3fffd6e2000, count: 4096 > ) = 6 > > After: > 0.045 ( 0.011 ms): fstat(statbuf: 0x3ffff8a0930 > ) = 0 > 0.057 ( 0.018 ms): mmap(arg: 0x3ffff8a0858 > ) = 0x3fffd14a000 > 0.076 ( 0.025 ms): read(buf: 0x3fffd14a000, count: 4096 > ) = 6 > > Link: http://lkml.kernel.org/n/[email protected] > Signed-off-by: Jiri Olsa <[email protected]> > --- > tools/perf/builtin-trace.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c > index d014350adc52..4b2a5d298197 100644 > --- a/tools/perf/builtin-trace.c > +++ b/tools/perf/builtin-trace.c > @@ -681,6 +681,10 @@ static struct syscall_fmt { > { .name = "mlockall", .errmsg = true, > .arg_scnprintf = { [0] = SCA_HEX, /* addr */ }, }, > { .name = "mmap", .hexret = true, > +/* The standard mmap maps to old_mmap on s390x */ > +#if defined(__s390x__) > + .alias = "old_mmap", > +#endif > .arg_scnprintf = { [0] = SCA_HEX, /* addr */ > [2] = SCA_MMAP_PROT, /* prot */ > [3] = SCA_MMAP_FLAGS, /* flags */ }, }, > -- > 2.9.4

