Re: [PATCH] perf: Fix a precedence bug

From: Masami Hiramatsu
Date: Fri Feb 27 2015 - 06:17:49 EST


(2015/02/27 19:52), He Kuang wrote:
> The minus operator has higher precedence than ?:
> Add parentheses around ?: fix this.
>
> Before this patch:
> $ echo 'p:myprobe do_sys_open' > /sys/kernel/debug/tracing/kprobe_events
> $ perf probe -l -k ../vmlinux
> kprobes:myprobe (on do_sys_open)
>
> After this patch:
> $ echo 'p:myprobe do_sys_open' > /sys/kernel/debug/tracing/kprobe_events
> $ perf probe -l -k ../vmlinux
> kprobes:myprobe (on do_sys_open@xxxxxxxxx/fs/open.c)


BTW, on my environment (CentOS7)

# ./perf probe -a do_fork
Added new event:
probe:do_fork (on do_fork)

You can now use it in all perf tools, such as:

perf record -e probe:do_fork -aR sleep 1

# ./perf probe -l
probe:do_fork (on do_fork@kernel/fork.c)

# ./perf probe -l -k /usr/lib/debug/lib/modules/3.10.0-123.13.2.el7.x86_64/vmlinux
probe:do_fork (on do_fork@kernel/fork.c)

Hm, the current perf (without this patch) seems work...
But anyway, it looks safer to brace it.

Thank you,


>
> Signed-off-by: He Kuang <hekuang@xxxxxxxxxx>
> ---
> tools/perf/util/probe-event.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 919937e..bed8d0f 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -150,7 +150,7 @@ static u64 kernel_get_symbol_address_by_name(const char *name, bool reloc)
> sym = __find_kernel_function_by_name(name, &map);
> if (sym)
> return map->unmap_ip(map, sym->start) -
> - (reloc) ? 0 : map->reloc;
> + ((reloc) ? 0 : map->reloc);
> }
> return 0;
> }
>


--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research 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/