Messages in this thread | | | Subject | Re: [PATCH v3 3/7] perf tools: Remove the logical that skip buildid cache if symfs is given | From | Hekuang <> | Date | Fri, 13 May 2016 15:19:31 +0800 |
| |
hi
在 2016/5/13 4:23, David Ahern 写道: > On 5/12/16 7:09 AM, Arnaldo Carvalho de Melo wrote: >> Em Thu, May 12, 2016 at 08:43:12AM +0000, He Kuang escreveu: >>> Symfs dir and buildid dir are two places that perf looks into for >>> symbols, currently, if symfs dir is given, buildid-cache is skipped. >>> >>> 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. And >>> consider that the binaries indexed by buildid do not cause ambiguity, >>> this patch simply removes that logical. >> >> Makes perfect sense, David, do you have any concern? Can I have your >> Acked-by? > > seems odd to me you want to look in the buildid-cache when a symfs is > given. The point of symfs was "go look for everything under here." > > I believe dso__load is going to hit DSO_BINARY_TYPE__BUILD_ID_CACHE > before any of the others and there are probably cases where a stale > cache entry would be hit before a build tree entry (e.g., symfs).
Build id entries recorded in perf.data reflect the current dso, so if buildid is matched , how can it be a stale one?
> > What about putting the build id cache under the symfs? so instead of > dropping the symfs check and it to the path for the build id cache. > > I think your intention is to reference symbol files in one place instead of two. So there're two possible approaches, one is all in buildid-cache, but in practice, I found lots of binaries in symfs even not contains valid buildid, so this way is not work.
The other one is all in symfs. It seems ok, but one problem I should point out, with my test environment as an example, the symfsdir is $(TARGET_ROOTFS),and by default buildid_dir is $(TARGET_ROOTFS)/$(HOME)/.debug/, host perf does not know $(HOME) folder in target and we should copy the debug folder to $(TARGET_ROOTFS), which is readonly in the target. For me, it's easier to use 'buildid-cache -a vdso-xxxx' to add that into host buildid-cache than copy debug folder from $(HOME) to readonly $(TARGET_ROOTFS).
Without the stale concern, I prefer the two places(buildid-dir in host and target symfs) way.
Thanks.
| |