Received: by 2002:ac0:a679:0:0:0:0:0 with SMTP id p54csp631985imp; Thu, 21 Feb 2019 08:09:09 -0800 (PST) X-Google-Smtp-Source: AHgI3IYR14kPs9hFB1Xmpi+/WSYxi39NAlmHR/e0HpTouSRGy/NdYkwlF8FKHlMHrS9p9GhfvN1G X-Received: by 2002:a62:3c1:: with SMTP id 184mr41344946pfd.56.1550765349337; Thu, 21 Feb 2019 08:09:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550765349; cv=none; d=google.com; s=arc-20160816; b=dIZhcZM1OU0BivsDZfDKwVOlz/8BzmEDZQFSBH3GV5zBUSH5u9AYxT/rjgm1yOaTAQ IGeItOB/SpgzeyNHsQ7UzfAWfFSXRSBhT8CGUmqTDWw7BHtDKqNmyjET7+S3lHtJjwfa RjEJLs0cp9vhKUJJFQmVfMAlNmXpj2bFeLthhjdw11Gzs5Q3VF+/0aqzaNVZjZ6j8sXN E/mLEVlvp709R+UH376cZvRlSscwlGLuITq1VkwVrR3eLTc4KNFURXTUydqZ7mw3y8We qrroSgiNhYlwo74IwQwzAduL7AeA2lUp5qGbWYLaAdi3Zkqz/W339psh7bI2El7/nGpg TOOA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=wxkT84ZOu6sItXEgoRUsYDvurJoeiQCwrbhVoC2haGA=; b=AYaS7TYrPdmzIatmAgIRyH9X4KT0igQgAqCR6Xxvs7WWCtc4iY9LO+JGi7CXJjJ3iH gp3vDDpPTXmeqXU0dT7zTUihFj9H3ItmJ9R/0Y6wQ3ApQXzXatfDViX4xaWrjn+Fr/Wz lw78Yugi8qieHpDwfMfACadHtzyvwq6CG7+bJswAEZJO6fb1eY3+H0+yUFZcnDhOv1+L FCwttN9TKbJ/WEHLi0ZQkvg8BvBcUNnXxh4gB2Z7tSU0pBrhru3N0ZKGIdsud9zVUStw ap0xCak6B+rCOe2I67ufk6DMd0i1GVldT+LxXzvZENSvXYREtc6ZC94CgFe19lzZraJF 1kAA== ARC-Authentication-Results: i=1; mx.google.com; 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 62si22276230plc.87.2019.02.21.08.08.54; Thu, 21 Feb 2019 08:09:09 -0800 (PST) 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; 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 S1728515AbfBUQHP (ORCPT + 99 others); Thu, 21 Feb 2019 11:07:15 -0500 Received: from mx-rz-3.rrze.uni-erlangen.de ([131.188.11.22]:59808 "EHLO mx-rz-3.rrze.uni-erlangen.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725845AbfBUQHO (ORCPT ); Thu, 21 Feb 2019 11:07:14 -0500 Received: from mx-rz-smart.rrze.uni-erlangen.de (mx-rz-smart.rrze.uni-erlangen.de [IPv6:2001:638:a000:1025::1e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx-rz-3.rrze.uni-erlangen.de (Postfix) with ESMTPS id 444zrJ5NDVz20Wc; Thu, 21 Feb 2019 17:07:12 +0100 (CET) Authentication-Results: mx-rz-3.rrze.uni-erlangen.de; dkim=none reason="no signature"; dkim-adsp=none (unprotected policy); dkim-atps=neutral X-Virus-Scanned: amavisd-new at boeck1.rrze.uni-erlangen.de (RRZE) X-RRZE-Flag: Not-Spam X-RRZE-Submit-IP: 10.21.5.153 Received: from fau.de (faustud-010-021-005-153.pool.uni-erlangen.de [10.21.5.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: U2FsdGVkX1+vfbUDDE6dRkik2bxziMFt0V7b3jgl1bY=) by smtp-auth.uni-erlangen.de (Postfix) with ESMTPSA id 444zrG1JC9z20WN; Thu, 21 Feb 2019 17:07:10 +0100 (CET) From: Jonas Rabenstein To: linux-perf-users@vger.kernel.org Cc: Adrian Hunter , Alexander Shishkin , Andi Kleen , Arnaldo Carvalho de Melo , David Miller , Eric Saint-Etienne , Ingo Molnar , Jiri Olsa , Kim Phillips , Konstantin Khlebnikov , Milian Wolff , Namhyung Kim , Peter Zijlstra , Rob Gardner , Sandipan Das , linux-kernel@vger.kernel.org, Jonas Rabenstein Subject: [PATCH 1/3] perf map: add function to lookup inline symbols Date: Thu, 21 Feb 2019 17:06:50 +0100 Message-Id: <20190221160652.1788-2-jonas.rabenstein@studium.uni-erlangen.de> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190221160652.1788-1-jonas.rabenstein@studium.uni-erlangen.de> References: <20190221160652.1788-1-jonas.rabenstein@studium.uni-erlangen.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Inlined symbols should always be added to the dso's inlined_nodes tree in order to reuse them for a later lookup for the same address. Instead of repeating those steps at the different users, provide a central method to lookup and register inline symbols for a map. Signed-off-by: Jonas Rabenstein --- tools/perf/util/map.c | 23 +++++++++++++++++++++++ tools/perf/util/map.h | 3 +++ 2 files changed, 26 insertions(+) diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index 6751301a755c..0fe74e83ca8d 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -988,3 +988,26 @@ struct map_groups *map__kmaps(struct map *map) } return kmap->kmaps; } + +struct inline_node *map__inlines(struct map *map, u64 addr, struct symbol *sym) +{ + struct inline_node *node; + + if (!symbol_conf.inline_name) + return NULL; + + if (!map->dso) + return NULL; + + addr = map->map_ip(map, addr); + addr = map__rip_2objdump(map, addr); + + node = inlines__tree_find(&map->dso->inlined_nodes, addr); + if (node) + return node; + + node = dso__parse_addr_inlines(map->dso, addr, sym); + if (node) + inlines__tree_insert(&map->dso->inlined_nodes, node); + return node; +} diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h index 09282aa45c80..bdcc6e77e26e 100644 --- a/tools/perf/util/map.h +++ b/tools/perf/util/map.h @@ -270,4 +270,7 @@ static inline bool is_entry_trampoline(const char *name) return !strcmp(name, ENTRY_TRAMPOLINE_NAME); } +struct inline_node *map__inlines(struct map *map, u64 addr, + struct symbol *sym); + #endif /* __PERF_MAP_H */ -- 2.19.2