Messages in this thread | | | Date | Thu, 31 Dec 2009 19:30:04 +0800 | From | Xiao Guangrong <> | Subject | Re: [PATCH 3/3] perf tools: adjust symbol address |
| |
Arnaldo Carvalho de Melo wrote: > Em Thu, Dec 31, 2009 at 06:49:01PM +0800, Xiao Guangrong escreveu: >> >> Arnaldo Carvalho de Melo wrote: >> >>>> vmlinux* not know it's relocation or not, and we just handle the _specific_ >>>> kernel at the time which match the current system. >>> 'perf record' in one machine + 'perf report' in another should be >>> possible. >>> >> Yeah, but current code not support this since it not record kernel build-id in >> perf.data while 'perf record' works, maybe you can fix it. > > Huh? Checking... > > [root@ana tmp]# perf record -a -f sleep 1s > [ perf record: Woken up 3 times to write data ] > [ perf record: Captured and wrote 0.330 MB perf.data (~14404 samples) ] > [root@ana tmp]# perf buildid-list | grep kallsyms > a3301c8755357466e39d71b46e8f69aecf83c0e8 [kernel.kallsyms] > a3301c8755357466e39d71b46e8f69aecf83c0e8 [kernel.kallsyms] > [root@ana tmp]# > > In fact there is a bug, but the bug is either in 'perf buildid-list' > showing it twice or it being recorded twice in 'perf record'. >
Ah, it seems some perf tools like 'perf kmem/sched' not use the build-id which it's recorded in perf.data and it use the current kernel's build-id:
perf kmem/sched -> perf_session__new() -> perf_session__create_kernel_maps() -> map_groups__create_kernel_maps() -> dsos__create_kernel():
sysfs__read_build_id("/sys/kernel/notes", kernel->build_id, sizeof(kernel->build_id)
Hope i not misunderstand it. :-)
Xiao
| |