From: Jiri Olsa Date: Mon, 14 Jul 2014 15:57:19 +0000 (+0200) Subject: perf: Add vm_ops->name call for mmap event name retrieval X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=fbe26abe118ee1262b4ab0d12fefd42647eaea35;p=openwrt%2Fstaging%2Fblogic.git perf: Add vm_ops->name call for mmap event name retrieval The following patch added another way to get mmap name: 78d683e838a6 ("mm, fs: Add vm_ops->name as an alternative to arch_vma_name") The vdso vma mapping already switch to this and we no longer get vdso name via arch_vma_name function. Adding this way to the perf mmap event name retrieval code. Caught this via perf test: $ sudo ./perf test -v 7 7: Validate PERF_RECORD_* events & perf_sample fields : --- start --- SNIP PERF_RECORD_MMAP for [vdso] missing! test child finished with 255 ---- end ---- Validate PERF_RECORD_* events & perf_sample fields: FAILED! Signed-off-by: Jiri Olsa Acked-by: Andy Lutomirski Signed-off-by: Peter Zijlstra Cc: Namhyung Kim Cc: Arnaldo Carvalho de Melo Cc: Paul Mackerras Cc: Corey Ashford Cc: David Ahern Cc: Frederic Weisbecker Cc: Linus Torvalds Link: http://lkml.kernel.org/r/1405353439-14211-1-git-send-email-jolsa@kernel.org Signed-off-by: Ingo Molnar --- diff --git a/kernel/events/core.c b/kernel/events/core.c index 67e3b9c9a7d4..47996766e3da 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -5266,6 +5266,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event) goto got_name; } else { + if (vma->vm_ops && vma->vm_ops->name) { + name = (char *) vma->vm_ops->name(vma); + if (name) + goto cpy_name; + } + name = (char *)arch_vma_name(vma); if (name) goto cpy_name;