Messages in this thread | | | Subject | perf: problem of 32bit mmap call graph recording | From | Lin Ming <> | Date | Wed, 17 Aug 2011 16:20:03 +0800 |
| |
Hi all,
On 32 bit machine, we have problem to get the usersapce call graph of mmap syscall.
You can reproduce it with below command on 32bit machine.
sudo perf record -f -g -e raw_syscalls:sys_enter --filter "id==192" ls
sudo perf report |less
# Events: 26 # # Overhead Command Shared Object Symbol # ........ ....... ................. ...... # 100.00% ls [kernel.kallsyms] [k] syscall_trace_enter | --- syscall_trace_enter syscall_trace_entry | |--88.46%-- __mmap <--- only __mmap, no more userspace call stacks | --11.54%-- 0xffffe424
Kernel relies on userspace bp register to get call graph information. But for mmap syscall, the bp register is used to pass in the sixth parameter(offset).
void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
Anyway to fix this issue on 32bit machine?
Thanks, Lin Ming
| |