Em Thu, May 12, 2016 at 08:43:11AM +0000, He Kuang escreveu: > When unwinding callchains on a different machine, vdso info should be > provided so the unwind process won't be interrupted if address falls > into vdso region. But in most cases, the addresses of sample events > are not in vdso range, the buildid of a zero hit vdso won't be stored > into perf.data. > > This patch stores vdso buildid regardless of whether the vdso is hit > or not.
Looks ok, applied. > Signed-off-by: He Kuang <heku...@huawei.com> > --- > tools/perf/util/build-id.c | 2 +- > tools/perf/util/dso.c | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/tools/perf/util/build-id.c b/tools/perf/util/build-id.c > index 0573c2e..bdc7580 100644 > --- a/tools/perf/util/build-id.c > +++ b/tools/perf/util/build-id.c > @@ -256,7 +256,7 @@ static int machine__write_buildid_table(struct machine > *machine, int fd) > size_t name_len; > bool in_kernel = false; > > - if (!pos->hit) > + if (!pos->hit && !dso__is_vdso(pos)) > continue; > > if (dso__is_vdso(pos)) { > diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c > index 8e639543..b39b80c 100644 > --- a/tools/perf/util/dso.c > +++ b/tools/perf/util/dso.c > @@ -7,6 +7,7 @@ > #include "auxtrace.h" > #include "util.h" > #include "debug.h" > +#include "vdso.h" > > char dso__symtab_origin(const struct dso *dso) > { > @@ -1169,7 +1170,7 @@ bool __dsos__read_build_ids(struct list_head *head, > bool with_hits) > struct dso *pos; > > list_for_each_entry(pos, head, node) { > - if (with_hits && !pos->hit) > + if (with_hits && !pos->hit && !dso__is_vdso(pos)) > continue; > if (pos->has_build_id) { > have_build_id = true; > -- > 1.8.5.2