From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932835AbcE3Iwe (ORCPT ); Mon, 30 May 2016 04:52:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49224 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932136AbcE3Iwd (ORCPT ); Mon, 30 May 2016 04:52:33 -0400 Date: Mon, 30 May 2016 10:52:27 +0200 From: Jiri Olsa To: He Kuang Cc: peterz@infradead.org, mingo@redhat.com, acme@kernel.org, alexander.shishkin@linux.intel.com, wangnan0@huawei.com, jpoimboe@redhat.com, ak@linux.intel.com, eranian@google.com, namhyung@kernel.org, adrian.hunter@intel.com, sukadev@linux.vnet.ibm.com, masami.hiramatsu.pt@hitachi.com, tumanova@linux.vnet.ibm.com, kan.liang@intel.com, penberg@kernel.org, dsahern@gmail.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 04/11] perf tools: Move unwind__prepare_access from thread_new into thread__insert_map Message-ID: <20160530085227.GA25607@krava> References: <1464436800-39860-1-git-send-email-hekuang@huawei.com> <1464436800-39860-5-git-send-email-hekuang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1464436800-39860-5-git-send-email-hekuang@huawei.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 30 May 2016 08:52:32 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, May 28, 2016 at 11:59:53AM +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. > > Signed-off-by: He Kuang > --- > tools/perf/util/thread.c | 7 ++----- > tools/perf/util/unwind-libunwind.c | 7 +++---- > 2 files changed, 5 insertions(+), 9 deletions(-) > > diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c > index 6d3900c..045477d 100644 > --- a/tools/perf/util/thread.c > +++ b/tools/perf/util/thread.c > @@ -43,11 +43,6 @@ struct thread *thread__new(pid_t pid, pid_t tid) > thread->cpu = -1; > INIT_LIST_HEAD(&thread->comm_list); > > - register_local_unwind_libunwind_ops(thread); > - > - if (unwind__prepare_access(thread) < 0) > - goto err_thread; > - > comm_str = malloc(32); > if (!comm_str) > goto err_thread; > @@ -207,6 +202,8 @@ void thread__insert_map(struct thread *thread, struct map *map) > { > map_groups__fixup_overlappings(thread->mg, map, stderr); > map_groups__insert(thread->mg, map); > + > + unwind__prepare_access(thread); so thread__insert_map does not return value, I think we should change it now when it calls unwind__prepare_access I was also thinking to keepcall unwind__prepare_access separatelly but this function seems to fit better thanks, jirka