Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1410964

Re: [PATCH v7 03/14] perf tools: Introducing struct unwind_libunwind_ops for local unwind

From Jiri Olsa <jolsa@redhat.com>
Newsgroups linux.kernel
Subject Re: [PATCH v7 03/14] perf tools: Introducing struct unwind_libunwind_ops for local unwind
Date 2016-06-01 10:50 +0200
Message-ID <rFa0F-67A-9@gated-at.bofh.it> (permalink)
References <rEPSh-20r-5@gated-at.bofh.it> <rEQ1Z-24b-61@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, May 31, 2016 at 11:19:01AM +0000, He Kuang wrote:
> Currently, libunwind operations are fixed, and they are chosen
> according to the host architecture. This will lead a problem that if a
> thread is run as x86_32 on x86_64 machine, perf will use libunwind
> methods for x86_64 to parse the callchain and get wrong result.
> 
> This patch changes the fixed methods of libunwind operations to
> thread/map related, and each thread can have indivadual libunwind
> operations. Local libunwind methods are registered as default value.
> 
> Signed-off-by: He Kuang <hekuang@huawei.com>
> ---
>  tools/perf/util/thread.c           |  6 ++++
>  tools/perf/util/thread.h           |  4 ++-
>  tools/perf/util/unwind-libunwind.c | 58 +++++++++++++++++++++++++++++++++++---
>  tools/perf/util/unwind.h           | 19 +++++++++++++
>  4 files changed, 82 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c
> index 45fcb71..95ff1b8 100644
> --- a/tools/perf/util/thread.c
> +++ b/tools/perf/util/thread.c
> @@ -43,6 +43,12 @@ struct thread *thread__new(pid_t pid, pid_t tid)
>  		thread->cpu = -1;
>  		INIT_LIST_HEAD(&thread->comm_list);
>  
> +#ifdef HAVE_LIBUNWIND_SUPPORT
> +		unwind__register_ops(thread, local_unwind_libunwind_ops);
> +#else
> +		unwind__register_ops(thread, NULL);
> +#endif
> +

I think we should put unwind__register_ops call into unwind__prepare_access
in this patch (like you do in patch 4) and without the #else clause

this way you can keep unwind__register_ops local

thanks,
jirka

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v7 00/14] Add support for remote unwind He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
  [PATCH v7 11/14] perf tools: Change fixed name of libunwind__arch_reg_id to macro He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
  [PATCH v7 06/14] perf tools: Separate local/remote libunwind config He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
    Re: [PATCH v7 06/14] perf tools: Separate local/remote libunwind  config Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:40 +0200
  [PATCH v7 07/14] perf tools: Rename unwind-libunwind.c to unwind-libunwind-local.c He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
  [PATCH v7 13/14] perf callchain: Support x86 target platform He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
    Re: [PATCH v7 13/14] perf callchain: Support x86 target platform Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:50 +0200
      Re: [PATCH v7 13/14] perf callchain: Support x86 target platform Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-06-01 14:50 +0200
        Re: [PATCH v7 13/14] perf callchain: Support x86 target platform Jiri Olsa <jolsa@redhat.com> - 2016-06-01 15:20 +0200
    Re: [PATCH v7 13/14] perf callchain: Support x86 target platform Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:50 +0200
      Re: [PATCH v7 13/14] perf callchain: Support x86 target platform Hekuang <hekuang@huawei.com> - 2016-06-01 12:00 +0200
    Re: [PATCH v7 13/14] perf callchain: Support x86 target platform Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:50 +0200
  [PATCH v7 09/14] perf tools: Export normalize_arch() function He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
  [PATCH v7 03/14] perf tools: Introducing struct unwind_libunwind_ops for local unwind He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
    Re: [PATCH v7 03/14] perf tools: Introducing struct  unwind_libunwind_ops for local unwind Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:40 +0200
    Re: [PATCH v7 03/14] perf tools: Introducing struct  unwind_libunwind_ops for local unwind Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:50 +0200
  [PATCH v7 14/14] perf callchain: Support aarch64 cross-platform He Kuang <hekuang@huawei.com> - 2016-05-31 13:30 +0200
    Re: [PATCH v7 14/14] perf callchain: Support aarch64 cross-platform Jiri Olsa <jolsa@redhat.com> - 2016-06-01 10:50 +0200
      Re: [PATCH v7 14/14] perf callchain: Support aarch64 cross-platform Hekuang <hekuang@huawei.com> - 2016-06-01 12:10 +0200

csiph-web