perf: builtin-record: Provide advice if mmap'ing fails with EPERM.

This failure is most likely due to running up against the
kernel.perf_event_mlock_kb sysctl, so we can tell the user what to do to
fix the issue.

Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1324301972-22740-3-git-send-email-nelhage@nelhage.com
Signed-off-by: Nelson Elhage <nelhage@nelhage.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Nelson Elhage 2011-12-19 08:39:31 -05:00 committed by Arnaldo Carvalho de Melo
parent f41612f43b
commit 18e6093904

View File

@ -272,8 +272,15 @@ static void perf_record__open(struct perf_record *rec)
exit(-1);
}
if (perf_evlist__mmap(evlist, opts->mmap_pages, false) < 0)
if (perf_evlist__mmap(evlist, opts->mmap_pages, false) < 0) {
if (errno == EPERM)
die("Permission error mapping pages.\n"
"Consider increasing "
"/proc/sys/kernel/perf_event_mlock_kb,\n"
"or try again with a smaller value of -m/--mmap_pages.\n"
"(current value: %d)\n", opts->mmap_pages);
die("failed to mmap with %d (%s)\n", errno, strerror(errno));
}
if (rec->file_new)
session->evlist = evlist;