From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB2A4C43603 for ; Tue, 17 Dec 2019 14:49:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9C85A24672 for ; Tue, 17 Dec 2019 14:49:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576594170; bh=iKIf0usHFHKJI7gfXJ7jOaAskW3xJI1wYNSUP+7sim8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=zL6IJACFoaJGoyaKZ9R6LNrcinLYR9vh90QO7RER0iOzwEoJaT+BB84svHAgM5B0Y P24TrMA2So6jwxZADdWvJSoAEOZXvey7XfzDZv3mThInAW4SezbmIbCytntiykWYWf FwpCmFO0BRxb6ruQNboGs/DtA5kN30FeYa+5MwTA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729349AbfLQOt3 (ORCPT ); Tue, 17 Dec 2019 09:49:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:41538 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727941AbfLQOt0 (ORCPT ); Tue, 17 Dec 2019 09:49:26 -0500 Received: from quaco.ghostprotocols.net (unknown [179.97.35.50]) (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 89EED2072D; Tue, 17 Dec 2019 14:49:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576594165; bh=iKIf0usHFHKJI7gfXJ7jOaAskW3xJI1wYNSUP+7sim8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y6G5C0lK1Au0t8VhIK77tupqcDqxzR5M3kFjvCcRf/X3XVqSddJNuIxfPUy5cDyzo NyK3sGJjCrTsrcCFmZmPHhH7WmZUe1BAU/9gwaPltsQciqHRzG+tqW5esf3UvIX5fG PYsBcuyhYqWoDQiX4Uqg6zKpqcl6V+z85OWbZC6w= From: Arnaldo Carvalho de Melo To: Jiri Olsa , Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo , Adrian Hunter , Andi Kleen , Jin Yao , Kan Liang , Linus Torvalds Subject: [PATCH 10/12] perf report/top: Do not offer annotation for symbols without samples Date: Tue, 17 Dec 2019 11:48:26 -0300 Message-Id: <20191217144828.2460-11-acme@kernel.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191217144828.2460-1-acme@kernel.org> References: <20191217144828.2460-1-acme@kernel.org> 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 From: Arnaldo Carvalho de Melo This can happen in the --children mode, i.e. the default mode when callchains are present, where one of the main entries may be a callchain entry with no samples. So far we were not providing any information about why an annotation couldn't be provided even offering the Annotation option in the popup menu. Work is needed to allow for no-samples "annotation', i.e. to show the disassembly anyway and allow for navigation, etc. Cc: Adrian Hunter Cc: Andi Kleen Cc: Jin Yao Cc: Jiri Olsa Cc: Kan Liang Cc: Linus Torvalds Cc: Namhyung Kim Link: https://lkml.kernel.org/n/tip-0hhzj2de15o88cguy7h66zre@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/ui/browsers/hists.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c index 7f653b9f5cd8..3f10e1a070c5 100644 --- a/tools/perf/ui/browsers/hists.c +++ b/tools/perf/ui/browsers/hists.c @@ -2461,7 +2461,8 @@ add_annotate_opt(struct hist_browser *browser __maybe_unused, struct popup_action *act, char **optstr, struct map_symbol *ms) { - if (ms->sym == NULL || ms->map->dso->annotate_warned) + if (ms->sym == NULL || ms->map->dso->annotate_warned || + symbol__annotation(ms->sym)->src == NULL) return 0; if (asprintf(optstr, "Annotate %s", ms->sym->name) < 0) @@ -3027,6 +3028,14 @@ static int perf_evsel__hists_browse(struct evsel *evsel, int nr_events, browser->selection->map->dso->annotate_warned) continue; + if (symbol__annotation(browser->selection->sym)->src == NULL) { + ui_browser__warning(&browser->b, delay_secs * 2, + "No samples for the \"%s\" symbol.\n\n" + "Probably appeared just in a callchain", + browser->selection->sym->name); + continue; + } + actions->ms.map = browser->selection->map; actions->ms.sym = browser->selection->sym; do_annotate(browser, actions); -- 2.21.0