Re: perf on biarch
From: David Ahern
Date: Thu Aug 21 2014 - 11:10:32 EST
On 8/18/14, 3:16 AM, Matthieu CASTET wrote:
Le Fri, 8 Aug 2014 13:50:52 -0600,
David Ahern <dsahern@xxxxxxxxx> a écrit :
On 8/8/14, 10:40 AM, Matthieu CASTET wrote:
Hi,
I have a 64 bits kernel running with 32 bits binaries.
If I run 32 bits perf on this 64 bits kernel 3.14, I got weird result :
- perf trace doesn't work [1]
I have patches that fix that:
git clone https://github.com/dsahern/linux.git
git checkout perf-full-monty
And if autodetection fails you can manually force it with -M x86.
Thanks david.
It is better, but it seems there are problem with argument parsing.
For example for
"mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xf77e2000"
I got :
- 2.847 ( 0.004 ms): mmap2(arg0: 0, arg1: 0, arg2: 4096, arg3: 0, arg4:
3, arg5: 0 ) = -143273984
Note the 4096 position. Running perf trace on a 32 bits kernel give
4096 at arg1.
What kernel version? And are you running my perf command or did you
extract the relevant patches?
Using a mixed system here:
# uname -a
Linux switch 3.4.10 #1 SMP Wed Jul 30 13:10:46 PDT 2014 x86_64 GNU/Linux
# file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.34, stripped
And comparing 'strace ls':
mmap2(0x41217000, 33356, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
3, 0) = 0x41217000
to 'perf trace ls':
1.239 ( 0.015 ms): mmap2(arg0: 1092710400, arg1: 33356, arg2: 5, arg3:
2050, arg4: 3, arg5: 0) = 1092710400
I am seeing a consistent output between strace and perf-trace for 32-bit
app on 64-bit kernel -- though perf-trace does need the pretty print for
mmap2.
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/