mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
perf report/top: Do not offer annotation for symbols without samples
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. Reviewed-by: Jiri Olsa <jolsa@kernel.org> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jin Yao <yao.jin@linux.intel.com> Cc: Kan Liang <kan.liang@intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-0hhzj2de15o88cguy7h66zre@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
4c8b9c0f42
commit
ea537f22f6
@ -2465,7 +2465,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)
|
||||
@ -3031,6 +3032,14 @@ do_hotkey: // key came straight from options ui__popup_menu()
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user