lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4E27F335.70001@hitachi.com>
Date:	Thu, 21 Jul 2011 18:36:53 +0900
From:	Akihiro Nagai <akihiro.nagai.hw@...achi.com>
To:	David Ahern <dsahern@...il.com>
Cc:	Arnaldo Carvalho de Melo <acme@...radead.org>,
	Ingo Molnar <mingo@...e.hu>,
	Peter Zijlstra <peterz@...radead.org>,
	Frederic Weisbecker <fweisbec@...il.com>,
	linux-kernel@...r.kernel.org,
	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
	yrl.pp-manager.tt@...achi.com, Paul Mackerras <paulus@...ba.org>
Subject: Re: [PATCH -tip v2 6/6] perf script: add option resolving vmlinux
 path

(2011/07/18 1:36), David Ahern wrote:
> On 07/17/2011 03:31 AM, Akihiro Nagai wrote:
>> Add the option get the path of [kernel.kallsyms].
>> Specify '--show-kernel-path' option to use this function.
>> This patch enables other applications to use this output easily.
>>
>> Without --show-kernel-path  option
>>
>> # perf script -f ip,dso
>> ffffffff81467612 irq_return ([kernel.kallsyms])
>> ffffffff81467612 irq_return ([kernel.kallsyms])
>>      7f24fc02a6b3 _start (/lib64/ld-2.14.so)
>> [snip]
>>
>> With --show-kernel-path option
>>
>> # perf script -f ip,dso --show-kernel-path
>> ffffffff81467612 irq_return (/lib/modules/3.0.0-rc6-tip+/build/vmlinux)
>> ffffffff81467612 irq_return (/lib/modules/3.0.0-rc6-tip+/build/vmlinux)
>>      7f24fc02a6b3 _start (/lib64/ld-2.14.so)
>> [snip]
>>
>> Signed-off-by: Akihiro Nagai<akihiro.nagai.hw@...achi.com>
>> Cc: Peter Zijlstra<peterz@...radead.org>
>> Cc: Frederic Weisbecker<fweisbec@...il.com>
>> Cc: Paul Mackerras<paulus@...ba.org>
>> Cc: Ingo Molnar<mingo@...e.hu>
>> Cc: Arnaldo Carvalho de Melo<acme@...radead.org>
>> Cc: David Ahern<dsahern@...il.com>
>> Cc: Masami Hiramatsu<masami.hiramatsu.pt@...achi.com>
>> ---
>>
>>   tools/perf/Documentation/perf-script.txt |    3 +++
>>   tools/perf/builtin-script.c              |    2 ++
>>   tools/perf/util/map.c                    |    7 +++++--
>>   tools/perf/util/session.c                |    2 ++
>>   tools/perf/util/symbol.c                 |    1 +
>>   tools/perf/util/symbol.h                 |    1 +
>>   6 files changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
>> index ee4d477..5383671 100644
>> --- a/tools/perf/Documentation/perf-script.txt
>> +++ b/tools/perf/Documentation/perf-script.txt
>> @@ -188,6 +188,9 @@ OPTIONS
>>   	CPUs are specified with -: 0-2. Default is to report samples on all
>>   	CPUs.
>>
>> +--show-kernel-path::
>> +	Try to resolve the path of [kernel.kallsyms]
>> +
>>   SEE ALSO
>>   --------
>>   linkperf:perf-record[1], linkperf:perf-script-perl[1],
>> diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
>> index fd68185..0d04788 100644
>> --- a/tools/perf/builtin-script.c
>> +++ b/tools/perf/builtin-script.c
>> @@ -1099,6 +1099,8 @@ static const struct option options[] = {
>>   		     "addr,offs",
>>   		     parse_output_fields),
>>   	OPT_STRING('c', "cpu",&cpu_list, "cpu", "list of cpus to profile"),
>> +	OPT_BOOLEAN('\0', "show-kernel-path",&show_kernel_path,
>> +		    "Show the path of [kernel.kallsyms]"),
>>
>>   	OPT_END()
>>   };
>> diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
>> index dddc0f3..1645967 100644
>> --- a/tools/perf/util/map.c
>> +++ b/tools/perf/util/map.c
>> @@ -204,9 +204,12 @@ void map__print_dsoname(struct map *self)
>>   {
>>   	const char *dsoname;
>>
>> -	if (self&&  self->dso&&  self->dso->name)
>> +	if (self&&  self->dso&&  (self->dso->name || self->dso->long_name)) {
>> +		if (show_kernel_path&&  self->dso->long_name)
>> +			dsoname = self->dso->long_name;
>> +		else if (self->dso->name)
>>   			dsoname = self->dso->name;
>> -	else
>> +	} else
>>   		dsoname = "[unknown]";
>>
>>   	printf("%s", dsoname);
>> diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
>> index 3728e67..34c5887 100644
>> --- a/tools/perf/util/session.c
>> +++ b/tools/perf/util/session.c
>> @@ -14,6 +14,8 @@
>>   #include "util.h"
>>   #include "cpumap.h"
>>
>> +bool show_kernel_path;
>> +
>>   static int perf_session__open(struct perf_session *self, bool force)
>>   {
>>   	struct stat input_stat;
>> diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
>> index abfecf6..3356d6e 100644
>> --- a/tools/perf/util/symbol.c
>> +++ b/tools/perf/util/symbol.c
>> @@ -41,6 +41,7 @@ static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map,
>>   			symbol_filter_t filter);
>>   static int vmlinux_path__nr_entries;
>>   static char **vmlinux_path;
>> +bool show_kernel_path;
>
> declared twice. See above in session.c. I suggest removing the one in
> session.c
Oops. I forgot to delete it.
Thank you.
>
> David
>
>
>>
>>   struct symbol_conf symbol_conf = {
>>   	.exclude_other	  = true,
>> diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
>> index 554b2fe..88000e5 100644
>> --- a/tools/perf/util/symbol.h
>> +++ b/tools/perf/util/symbol.h
>> @@ -96,6 +96,7 @@ struct symbol_conf {
>>   };
>>
>>   extern struct symbol_conf symbol_conf;
>> +extern bool show_kernel_path;
>>
>>   static inline void *symbol__priv(struct symbol *sym)
>>   {
>>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ