Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1403986
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 02/11] perf machine: Do not bail out if not managing to read ref reloc symbol |
| Date | 2016-05-20 00:30 +0200 |
| Message-ID | <rAEC5-5K2-9@gated-at.bofh.it> (permalink) |
| References | <rAEC5-5K2-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Arnaldo Carvalho de Melo <acme@redhat.com>
This means the user can't access /proc/kallsyms, for instance, because
/proc/sys/kernel/kptr_restrict is set to 1.
Instead leave the ref_reloc_sym as NULL and code using it will cope.
This allows 'perf trace' to work on such systems for !root, the only
issue would be when trying to resolve kernel symbols, which happens,
for instance, in some libtracevent plugins. A warning for that case
will be provided in the next patch in this series.
Noticed in Ubuntu 16.04, that comes with kptr_restrict=1.
Reported-by: Milian Wolff <milian.wolff@kdab.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-knpu3z4iyp2dxpdfm798fac4@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/machine.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 7ba9fadb68af..b277984aaa93 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -1135,10 +1135,10 @@ int machine__create_kernel_maps(struct machine *machine)
{
struct dso *kernel = machine__get_kernel(machine);
const char *name;
- u64 addr = machine__get_running_kernel_start(machine, &name);
+ u64 addr;
int ret;
- if (!addr || kernel == NULL)
+ if (kernel == NULL)
return -1;
ret = __machine__create_kernel_maps(machine, kernel);
@@ -1160,8 +1160,9 @@ int machine__create_kernel_maps(struct machine *machine)
*/
map_groups__fixup_end(&machine->kmaps);
- if (maps__set_kallsyms_ref_reloc_sym(machine->vmlinux_maps, name,
- addr)) {
+ addr = machine__get_running_kernel_start(machine, &name);
+ if (!addr) {
+ } else if (maps__set_kallsyms_ref_reloc_sym(machine->vmlinux_maps, name, addr)) {
machine__destroy_kernel_maps(machine);
return -1;
}
--
2.5.5
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 04/11] perf top: Use machine->kptr_restrict_warned Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 02/11] perf machine: Do not bail out if not managing to read ref reloc symbol Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 10/11] perf trace: Only auto set call-graph to "dwarf" when syscalls are being traced Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 03/11] perf trace: Warn when trying to resolve kernel addresses with kptr_restrict=1 Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 09/11] perf annotate: Sort list of recognised instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 08/11] perf annotate: Fix identification of ARM blt and bls instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 06/11] perf callchain: Stop validating callchains by the max_stack sysctl Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 01/11] perf tools: Find vdso supporting cross-platform analysis Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 07/11] perf tools: Fix usage of max_stack sysctl Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 11/11] perf tools: Set buildid dir under symfs when --symfs is provided Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
[PATCH 05/11] perf trace: Fix exit_group() formatting Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 00:30 +0200
Re: [GIT PULL 00/11] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-05-20 17:10 +0200
Re: [GIT PULL 00/11] perf/core improvements and fixes Ingo Molnar <mingo@kernel.org> - 2016-05-20 19:40 +0200
csiph-web