Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1014355yba; Thu, 4 Apr 2019 02:27:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqw7dO5/0ic75whfXX7BsluYioCifDe0Yfs013csSSvJjYcgM4Om52BgLN7gA488HC+liMzo X-Received: by 2002:a17:902:b686:: with SMTP id c6mr5340278pls.14.1554370037220; Thu, 04 Apr 2019 02:27:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554370037; cv=none; d=google.com; s=arc-20160816; b=yFy7gw1UnTd6b7MUcbtL8bgOwLW+9A6O/SHR34rtsImPFM11tYPr5GJghCZxpSnA+F He2hmRjis70SQzQnfUCBS2hzrW9Sft10jrjAPTt142vm4zjGYn1PYIerVsj6Kyta6anB RdlFZV19kzXuknnXOD05iFKYhg7A9BJhPkqkJiTaZxJ9LLSy9FgyFUcrF8d9jKpfhiIV B4JNx/s3l4X0UsDi8dbb9ngwifPu9g4+j1w3FrNtVE1lu5I6mHnYhYrJH/Ui51aXNeYO fFVYjpAx0ByPinFHQ5qqr/SHL9G54XAX9kkA2fXmMi2l5aSruwIuBKvaakZhpqPrsjrh TGpw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=2a0DwsjznabfYiZEuKOPixGnJI1FldEti8Q1llIhm+Y=; b=gqC/D1HvL2rWbYdfKFmKMAFOVaOehboyW/8XNvUP+9WleAPhvXxsVpsmz9xvambeWU UZO3Ugt+ftbquk5/FqDJDagDwo/ucERYhqmcG5Fpmngp6M2e98ZAFWRN29uNqeAsgCKW 6mBwEeI6HXA7zU5AtDzqnRlw/PqpdnQMVWZrHBlckrKdnXdVHCLmaa2sxXQQItDlrM0J z7ea2D3N6QcX8I3bj7p8in+4v2pCVvGkS8LNLvAmGkJuMdLWBuDDQi6lRX3Q8/Ct7j/d FsS8sejfjcm3cdnxDV6rA/tprcO/DMy7IlxytlO9lhg0du6UVJCE86E4k3SDwHuYoRVd cTnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LOmPfNKR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u6si15619490pfh.265.2019.04.04.02.27.02; Thu, 04 Apr 2019 02:27:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LOmPfNKR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387655AbfDDJ0R (ORCPT + 99 others); Thu, 4 Apr 2019 05:26:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:53538 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733014AbfDDJNS (ORCPT ); Thu, 4 Apr 2019 05:13:18 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C373520693; Thu, 4 Apr 2019 09:13:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554369197; bh=pr7wRFi4rYvVi4I5EGh+MuGTOyqXG5mlnUalXXuwVlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LOmPfNKRlqVEPdBTy/gOreGqpijBfkfhxgpdWOgInUJF6kO3Kfhcv1cv+FV/5jX37 OnX/mMCVJIonyUkec+cB37r499AKdhYYO5k0G9F13vqP3Kf+vHD3CpDbcjJokuR2rQ 2S+p7pGtM3gXFcAp08CAU84S5+sxn5GW+MAOR1ms= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, He Kuang , Jiri Olsa , Alexander Shishkin , Milian Wolff , Namhyung Kim , Peter Zijlstra , Arnaldo Carvalho de Melo , Sasha Levin Subject: [PATCH 5.0 110/246] perf report: Dont shadow inlined symbol with different addr range Date: Thu, 4 Apr 2019 10:46:50 +0200 Message-Id: <20190404084623.000473746@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190404084619.236418459@linuxfoundation.org> References: <20190404084619.236418459@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 7346195e8643482968f547483e0d823ec1982fab ] We can't assume inlined symbols with the same name are equal, because their address range may be different. This will cause the symbols with different addresses be shadowed when adding to the hist entry, and lead to ERANGE error when checking the symbol address during sample parse, the addr should be within the range of [sym.start, sym.end]. The error message is like: "0x36aea60 [0x8]: failed to process type: 68". The second parameter of symbol__new() is the length of the fake symbol for the inline frame, which is the subtraction of the end and start address of base_sym. Signed-off-by: He Kuang Acked-by: Jiri Olsa Cc: Alexander Shishkin Cc: Milian Wolff Cc: Namhyung Kim Cc: Peter Zijlstra Fixes: aa441895f7b4 ("perf report: Compare symbol name for inlined frames when sorting") Link: http://lkml.kernel.org/r/20190219130531.15692-1-hekuang@huawei.com Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Sasha Levin --- tools/perf/util/sort.c | 10 ++++++++-- tools/perf/util/srcline.c | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index 6c1a83768eb0..d0334c33da54 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c @@ -230,8 +230,14 @@ static int64_t _sort__sym_cmp(struct symbol *sym_l, struct symbol *sym_r) if (sym_l == sym_r) return 0; - if (sym_l->inlined || sym_r->inlined) - return strcmp(sym_l->name, sym_r->name); + if (sym_l->inlined || sym_r->inlined) { + int ret = strcmp(sym_l->name, sym_r->name); + + if (ret) + return ret; + if ((sym_l->start <= sym_r->end) && (sym_l->end >= sym_r->start)) + return 0; + } if (sym_l->start != sym_r->start) return (int64_t)(sym_r->start - sym_l->start); diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c index dc86597d0cc4..ccf42c4e83f0 100644 --- a/tools/perf/util/srcline.c +++ b/tools/perf/util/srcline.c @@ -104,7 +104,7 @@ static struct symbol *new_inline_sym(struct dso *dso, } else { /* create a fake symbol for the inline frame */ inline_sym = symbol__new(base_sym ? base_sym->start : 0, - base_sym ? base_sym->end : 0, + base_sym ? (base_sym->end - base_sym->start) : 0, base_sym ? base_sym->binding : 0, base_sym ? base_sym->type : 0, funcname); -- 2.19.1