Re: [PATCH -tip v2 1/8] [BUGFIX] perf-probe: Fix to do exit callfor symbol maps

From: Masami Hiramatsu
Date: Mon Feb 03 2014 - 03:19:43 EST


(2014/02/03 16:41), Namhyung Kim wrote:
> Hi Masami,
>
> On Wed, 29 Jan 2014 09:14:52 +0000, Masami Hiramatsu wrote:
>> Some perf-probe commands do symbol_init() but doesn't
>> do exit call. This fixes that to call symbol_exit()
>> and relase machine if needed.
>> This also merges init_vmlinux() and init_user_exec()
>> because both of them are doing similar things.
>> (init_user_exec() just skips init vmlinux related
>> symbol maps)
>>
>> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@xxxxxxxxxxx>
>> ---
>> tools/perf/util/probe-event.c | 110 +++++++++++++++++++++++------------------
>> 1 file changed, 61 insertions(+), 49 deletions(-)
>>
>> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
>> index a8a9b6c..14c649df 100644
>> --- a/tools/perf/util/probe-event.c
>> +++ b/tools/perf/util/probe-event.c
>> @@ -73,31 +73,35 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp);
>> static int convert_name_to_addr(struct perf_probe_event *pev,
>> const char *exec);
>> static void clear_probe_trace_event(struct probe_trace_event *tev);
>> -static struct machine machine;
>> +static struct machine *host_machine;
>>
>> /* Initialize symbol maps and path of vmlinux/modules */
>> -static int init_vmlinux(void)
>> +static int init_symbol_maps(bool user_only)
>> {
>> int ret;
>>
>> symbol_conf.sort_by_name = true;
>> - if (symbol_conf.vmlinux_name == NULL)
>> - symbol_conf.try_vmlinux_path = true;
>> - else
>> - pr_debug("Use vmlinux: %s\n", symbol_conf.vmlinux_name);
>> + if (user_only)
>> + symbol_conf.try_vmlinux_path = false;
>> + else {
>> + if (symbol_conf.vmlinux_name == NULL)
>> + symbol_conf.try_vmlinux_path = true;
>
> This looks unnecessary and duplicate since we already have following
> code in __cmd_probe().
>
> /*
> * Only consider the user's kernel image path if given.
> */
> symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL);

Ah, I see :)
OK, I'll remove that part not to setting symbol_conf in probe-event.c.

Thank you!


--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/