Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756376AbcLPU2R (ORCPT ); Fri, 16 Dec 2016 15:28:17 -0500 Received: from hr2.samba.org ([144.76.82.148]:38064 "EHLO hr2.samba.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754355AbcLPU2P (ORCPT ); Fri, 16 Dec 2016 15:28:15 -0500 Date: Sat, 17 Dec 2016 07:27:54 +1100 From: Anton Blanchard To: Ravi Bangoria Cc: acme@kernel.org, chris.ryder@arm.com, peterz@infradead.org, linux-kernel@vger.kernel.org, npiggin@gmail.com, alexander.shishkin@linux.intel.com, mingo@redhat.com, paulus@samba.org, mhiramat@kernel.org, linuxppc-dev@lists.ozlabs.org, Michael Ellerman , Madhavan Srinivasan Subject: Re: [PATCH] perf TUI: Don't throw error for zero length symbols Message-ID: <20161217072754.32e6f492@kryten> In-Reply-To: <5853C42B.9050402@linux.vnet.ibm.com> References: <20161121172818.161639c2@kryten> <1479804050-5028-1-git-send-email-ravi.bangoria@linux.vnet.ibm.com> <5853C42B.9050402@linux.vnet.ibm.com> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1497 Lines: 42 Hi Ravi, > > perf report (with TUI) exits with error when it finds a sample of > > zero length symbol(i.e. addr == sym->start == sym->end). Actually > > these are valid samples. Don't exit TUI and show report with such > > symbols. > > > > Link: https://lkml.org/lkml/2016/10/8/189 You can add: Tested-by: Anton Blanchard Also, since this issue makes perf report pretty much useless on ppc64, can we mark it for stable@, at least to get it into 4.9 where the ppc64 kernel changes that triggered this appeared? Anton > > Reported-by: Anton Blanchard > > Signed-off-by: Ravi Bangoria > > --- > > tools/perf/util/annotate.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c > > index aeb5a44..430d039 100644 > > --- a/tools/perf/util/annotate.c > > +++ b/tools/perf/util/annotate.c > > @@ -593,7 +593,8 @@ static int __symbol__inc_addr_samples(struct > > symbol *sym, struct map *map, > > > > pr_debug3("%s: addr=%#" PRIx64 "\n", __func__, > > map->unmap_ip(map, addr)); > > > > - if (addr < sym->start || addr >= sym->end) { > > + if ((addr < sym->start || addr >= sym->end) && > > + (addr != sym->end || sym->start != sym->end)) { > > pr_debug("%s(%d): ERANGE! sym->name=%s, start=%#" > > PRIx64 ", addr=%#" PRIx64 ", end=%#" PRIx64 "\n", __func__, > > __LINE__, sym->name, sym->start, addr, sym->end); return -ERANGE; >