Messages in this thread | | | Subject | Re: [PATCH v3 3/7 UPDATE] perf tools: Add option for the path of buildid dsos under symfs | From | Hekuang <> | Date | Mon, 16 May 2016 09:30:22 +0800 |
| |
在 2016/5/14 22:43, David Ahern 写道: > On 5/14/16 2:19 AM, He Kuang wrote: >> In the cross-platform perf record/script scenario, we need vdsos in >> buildid-cache dir and other libs in symfs dir at the same time. For >> the reason that to have every single file opened by perf is relative >> to symfs dirctory, perf skips the buildid dir if symfs is given. >> >> This patch references the buildid dir under symfs if '--symfs' is >> used, and adds new option '--dso-prefix' to specify the subdir path in >> symfs which contains the buildid dsos. > > In the previous version of this patch you just wanted to drop the > symfs check. That means there is a path that perf searches for buildid > files and reading it worked for you. Why is adding symsfs to that path > not enough? ie., Why do you need to specify a different location under > the symfs? > In previous patch, I use 'perf buildid-cache -a' to add vdso binary into the HOST buildid dir.
Currently, $(BUILDID_ROOT)/.debug/.buildid has a directory structure organized by the buildid value, like this:
.build-id - 3a | e5ba6d4e532ad529e43ccf1ce1ddf8a64a4fdd - 84 dbd75729adba57cc42f5544b25de571c0c8731
perf searchs for buildid binaries by the buildid value.
And symfs is a normal file tree and perf searchs for binaryies by the file name.
lib - libc.so - ld.so
Tt's inappropriate to add symfs to .build-id dir becuase they have different dirctory structure and perf searchs for them by differnt ways.
So in this patch I add .buildid to symfs and got dirctory tree like this:
symfs - $(DSO_PREFIX) - .build-id - 3a - 84 - libc.so - ld.so
Thanks
| |