On Tue, May 31, 2016 at 11:19:02AM +0000, He Kuang wrote:
> For determine the libunwind methods to use, we should get the
> 32bit/64bit information from maps of a thread. When a thread is newly
> created, the information is not prepared. This patch moves
> unwind__prepare_access() into thread__insert_map() so we can get the
> information we need from maps. Meanwhile, let thread__insert_map()
> return value and show messages on error.
> 
> Signed-off-by: He Kuang <heku...@huawei.com>
> ---
>  tools/perf/util/machine.c          | 10 ++++++++--
>  tools/perf/util/thread.c           | 13 +++----------
>  tools/perf/util/thread.h           |  2 +-
>  tools/perf/util/unwind-libunwind.c |  7 +++----
>  4 files changed, 15 insertions(+), 17 deletions(-)
> 
> diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
> index bdc33ce..0bd6aac 100644
> --- a/tools/perf/util/machine.c
> +++ b/tools/perf/util/machine.c
> @@ -1353,7 +1353,10 @@ int machine__process_mmap2_event(struct machine 
> *machine,
>       if (map == NULL)
>               goto out_problem_map;
>  
> -     thread__insert_map(thread, map);
> +     ret = thread__insert_map(thread, map);
> +     if (ret)
> +             pr_err("Thread insert map error\n");
> +

I think we should fail the function, not just display error

>       thread__put(thread);
>       map__put(map);
>       return 0;
> @@ -1403,7 +1406,10 @@ int machine__process_mmap_event(struct machine 
> *machine, union perf_event *event
>       if (map == NULL)
>               goto out_problem_map;
>  
> -     thread__insert_map(thread, map);
> +     ret = thread__insert_map(thread, map);
> +     if (ret)
> +             pr_err("Thread insert map error\n");

same here

jirka

Reply via email to