[perf tool] record failure with 3.14-rc4

From: Will Deacon
Date: Mon Feb 24 2014 - 12:25:03 EST


Hi guys,

If I try to run perf record as a non-root user, I end up with the following
(unhelpful) error:

$ perf record -e cycles ls
[...]
Not enough memory for reading perf file header

This is because the addresses in /proc/kallsyms always read as 0x0 when
viewed by a non-privileged user, causing kallsyms__get_function_start to
return 0x0 in args.start. machine__create_kernel_maps then treats this as
an error an returns -1 to perf_session__create_kernel_maps, causing
perf_session__new to fail and perf to exit.

The perf tool code in 3.13 is perfectly happy creating maps at 0x0, but I
can see this has changed quite substantially in the recent merge window.

Any ideas? We could fix kallsyms__get_function_start to return < 0 on
failure then fix the checks in the callers. Adrian?

Will
--
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/