|
@@ -765,17 +765,19 @@ static int record__synthesize(struct record *rec, bool tail)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- err = perf_event__synthesize_kernel_mmap(tool, process_synthesized_event,
|
|
|
- machine);
|
|
|
- WARN_ONCE(err < 0, "Couldn't record kernel reference relocation symbol\n"
|
|
|
- "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n"
|
|
|
- "Check /proc/kallsyms permission or run as root.\n");
|
|
|
-
|
|
|
- err = perf_event__synthesize_modules(tool, process_synthesized_event,
|
|
|
- machine);
|
|
|
- WARN_ONCE(err < 0, "Couldn't record kernel module information.\n"
|
|
|
- "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n"
|
|
|
- "Check /proc/modules permission or run as root.\n");
|
|
|
+ if (!perf_evlist__exclude_kernel(rec->evlist)) {
|
|
|
+ err = perf_event__synthesize_kernel_mmap(tool, process_synthesized_event,
|
|
|
+ machine);
|
|
|
+ WARN_ONCE(err < 0, "Couldn't record kernel reference relocation symbol\n"
|
|
|
+ "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n"
|
|
|
+ "Check /proc/kallsyms permission or run as root.\n");
|
|
|
+
|
|
|
+ err = perf_event__synthesize_modules(tool, process_synthesized_event,
|
|
|
+ machine);
|
|
|
+ WARN_ONCE(err < 0, "Couldn't record kernel module information.\n"
|
|
|
+ "Symbol resolution may be skewed if relocation was used (e.g. kexec).\n"
|
|
|
+ "Check /proc/modules permission or run as root.\n");
|
|
|
+ }
|
|
|
|
|
|
if (perf_guest) {
|
|
|
machines__process_guests(&session->machines,
|
|
@@ -1709,7 +1711,7 @@ int cmd_record(int argc, const char **argv)
|
|
|
|
|
|
err = -ENOMEM;
|
|
|
|
|
|
- if (symbol_conf.kptr_restrict)
|
|
|
+ if (symbol_conf.kptr_restrict && !perf_evlist__exclude_kernel(rec->evlist))
|
|
|
pr_warning(
|
|
|
"WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted,\n"
|
|
|
"check /proc/sys/kernel/kptr_restrict.\n\n"
|