Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc2be696 authored by Willy Tarreau's avatar Willy Tarreau Committed by Arnaldo Carvalho de Melo
Browse files

perf symbols: Add new option --ignore-vmlinux for perf top



Running "perf top" on a machine with possibly invalid or non-matching
vmlinux at the various places results in no symbol resolving despite
/proc/kallsyms being present and valid.

Add a new option --ignore-vmlinux to explicitly indicate that we do not
want to use these kernels and just use what we have (kallsyms).

Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
Cc: Ingo Molnar <mingo@redhat.com>
Link: http://lkml.kernel.org/r/20130914083259.GA3418@1wt.eu


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent dd96c46b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1073,6 +1073,8 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused)
		    "list of cpus to monitor"),
	OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name,
		   "file", "vmlinux pathname"),
	OPT_BOOLEAN(0, "ignore-vmlinux", &symbol_conf.ignore_vmlinux,
		    "don't load vmlinux even if found"),
	OPT_BOOLEAN('K', "hide_kernel_symbols", &top.hide_kernel_symbols,
		    "hide kernel symbols"),
	OPT_CALLBACK('m', "mmap-pages", &opts->mmap_pages, "pages",
+2 −2
Original line number Diff line number Diff line
@@ -1215,7 +1215,7 @@ static int dso__load_kernel_sym(struct dso *dso, struct map *map,
		goto do_kallsyms;
	}

	if (symbol_conf.vmlinux_name != NULL) {
	if (!symbol_conf.ignore_vmlinux && symbol_conf.vmlinux_name != NULL) {
		err = dso__load_vmlinux(dso, map,
					symbol_conf.vmlinux_name, filter);
		if (err > 0) {
@@ -1227,7 +1227,7 @@ static int dso__load_kernel_sym(struct dso *dso, struct map *map,
		return err;
	}

	if (vmlinux_path != NULL) {
	if (!symbol_conf.ignore_vmlinux && vmlinux_path != NULL) {
		err = dso__load_vmlinux_path(dso, map, filter);
		if (err > 0)
			return err;
+1 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ struct symbol_conf {
	unsigned short	priv_size;
	unsigned short	nr_events;
	bool		try_vmlinux_path,
			ignore_vmlinux,
			show_kernel_path,
			use_modules,
			sort_by_name,