Re: [PATCH] perf, tool: Fix prefix matching for kernel maps

From: Arnaldo Carvalho de Melo
Date: Mon Feb 06 2012 - 15:09:04 EST


Em Sun, Feb 05, 2012 at 06:11:05PM +0100, Jiri Olsa escreveu:
> In some perf ancient versions we used '[kernel.kallsyms._text]' as
> the name for the kernel map.
>
> This got changed with commit:
> perf: 'perf kvm' tool for monitoring guest performance from host
> commit a1645ce12adb6c9cc9e19d7695466204e3f017fe
> Author: Zhang, Yanmin <yanmin_zhang@xxxxxxxxxxxxxxx>
>
> and we started to use following name '[kernel.kallsyms]_text'.
>
> This name change is important for the report code dealing with ancient
> perf data. When processing the kernel map event, we need to recognize
> the old naming (dont match the last ']') and initialize the kernel map
> correctly.
>
> The subsequent call to maps__set_kallsyms_ref_reloc_sym deals with the
> superfluous ']' to get correct symbol name.

Good catch & fix, thanks.

People curious about that -1 can look at 'git blame' to read the above
historical explanation ;-)

- Arnaldo

> Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> ---
> tools/perf/util/event.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
> index 73ddaf0..2044324 100644
> --- a/tools/perf/util/event.c
> +++ b/tools/perf/util/event.c
> @@ -554,7 +554,7 @@ static int perf_event__process_kernel_mmap(struct perf_tool *tool __used,
>
> is_kernel_mmap = memcmp(event->mmap.filename,
> kmmap_prefix,
> - strlen(kmmap_prefix)) == 0;
> + strlen(kmmap_prefix) - 1) == 0;
> if (event->mmap.filename[0] == '/' ||
> (!is_kernel_mmap && event->mmap.filename[0] == '[')) {
>
> --
> 1.7.4.4
--
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/