From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752490AbbC0TMu (ORCPT ); Fri, 27 Mar 2015 15:12:50 -0400 Received: from e06smtp11.uk.ibm.com ([195.75.94.107]:46630 "EHLO e06smtp11.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751212AbbC0TMt (ORCPT ); Fri, 27 Mar 2015 15:12:49 -0400 Date: Fri, 27 Mar 2015 20:12:42 +0100 From: David Hildenbrand To: "Liang, Kan" Cc: "linux-kernel@vger.kernel.org" , "a.p.zijlstra@chello.nl" , "paulus@samba.org" , "mingo@redhat.com" , "acme@kernel.org" , "acme@redhat.com" , "jolsa@kernel.org" , "namhyung@kernel.org" , "Hunter, Adrian" , "ak@linux.intel.com" , "brueckner@linux.vnet.ibm.com" , "schwidefsky@de.ibm.com" Subject: Re: [PATCH v1] perf callchain: fix kernel symbol resolution by remembering the cpumode Message-ID: <20150327201242.337b04db@thinkpad-w530> In-Reply-To: <37D7C6CF3E00A74B8858931C1DB2F0770177B54A@SHSMSX103.ccr.corp.intel.com> References: <1427468906-41544-1-git-send-email-dahi@linux.vnet.ibm.com> <37D7C6CF3E00A74B8858931C1DB2F0770177B54A@SHSMSX103.ccr.corp.intel.com> Organization: IBM Deutschland GmbH X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.27; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 15032719-0041-0000-0000-000003E10921 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > > > > Commit 2e77784bb7d8 ("perf callchain: Move cpumode resolve code to > > add_callchain_ip") promised "No change in behavior.". > > > > As this commit breaks callchains on s390x (symbols not getting resolved, > > observed when profiling the kernel), this statement is wrong. The > > cpumode must be kept when iterating over all ips, otherwise the default > > (PERF_RECORD_MISC_USER) will be used by error. > > Indeed. > Besides thread__resolve_callchain_sample, lbr path also need to > be patched. Thanks, I'll include that and send another version. David > > @@ -1538,6 +1536,7 @@ static int resolve_lbr_callchain_sample > (struct thread *thread, > { > struct ip_callchain *chain = sample->callchain; > int chain_nr = min(max_stack, (int)chain->nr); > + u8 cpumode = PERF_RECORD_MISC_USER; > int i, j, err; > u64 ip; > > @@ -1584,7 +1583,7 @@ static int resolve_lbr_callchain_sample > (struct thread *thread, > ip = lbr_stack->entries[0].to; > } > > - err = add_callchain_ip(thread, parent, root_al, false, ip); > + err = add_callchain_ip(thread, parent, root_al, &cpumode, ip); > if (err) > return (err < 0) ? err : 0; > } > > Thanks, > Kan >