mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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: Willy Tarreau <w@1wt.eu> Cc: Ingo Molnar <mingo@redhat.com> Link: http://lkml.kernel.org/r/20130914083259.GA3418@1wt.eu Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
		
							parent
							
								
									dd96c46b5c
								
							
						
					
					
						commit
						fc2be6968e
					
				
					 3 changed files with 5 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -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",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue