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

Reply via email to