Re: [PATCH] perf probe: Fix getting the kernel map

Arnaldo Carvalho de Melo
2019-03-08T14:39:34Z

Em Mon, Mar 04, 2019 at 03:13:21PM +0200, Adrian Hunter escreveu:
> Since commit 4d99e4136580 ("perf machine: Workaround missing maps for x86
> PTI entry trampolines"), perf tools has been creating more than one kernel
> map, however 'perf probe' assumed there could be only one.
>
> Fix by using machine__kernel_map() to get the main kernel map.

Masami, can I get your Acked-by?

- Arnaldo

> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> Fixes: 4d99e4136580 ("perf machine: Workaround missing maps for x86 PTI entry trampolines")
> Fixes: d83212d5dd67 ("kallsyms, x86: Export addresses of PTI entry trampolines")
> Tested-by: Joseph Qi <joseph.qi@linux.alibaba.com>
> Cc: stable@vger.kernel.org
> ---
> tools/perf/util/probe-event.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index e86f8be89157..6cd96f9b346d 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -157,8 +157,10 @@ static struct map *kernel_get_module_map(const char *module)
> if (module && strchr(module, '/'))
> return dso__new_map(module);
>
> - if (!module)
> - module = "kernel";
> + if (!module) {
> + pos = machine__kernel_map(host_machine);
> + return map__get(pos);
> + }
>
> for (pos = maps__first(maps); pos; pos = map__next(pos)) {
> /* short_name is "[module]" */
> --
> 2.19.1

--

- Arnaldo