mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
perf map: Add accessors for ->pgoff and ->reloc
Later changes will add reference count checking for 'struct map'. Add accessors so that the reference count check is only necessary in one place. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Darren Hart <dvhart@infradead.org> Cc: Davidlohr Bueso <dave@stgolabs.net> Cc: Dmitriy Vyukov <dvyukov@google.com> Cc: Eric Dumazet <edumazet@google.com> Cc: German Gomez <german.gomez@arm.com> Cc: Hao Luo <haoluo@google.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.g.garry@oracle.com> Cc: Kajol Jain <kjain@linux.ibm.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Leo Yan <leo.yan@linaro.org> Cc: Madhavan Srinivasan <maddy@linux.ibm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Miaoqian Lin <linmq006@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Riccardo Mancini <rickyman7@gmail.com> Cc: Shunsuke Nakamura <nakamura.shun@fujitsu.com> Cc: Song Liu <song@kernel.org> Cc: Stephane Eranian <eranian@google.com> Cc: Stephen Brennan <stephen.s.brennan@oracle.com> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Yury Norov <yury.norov@gmail.com> Link: https://lore.kernel.org/r/20230404205954.2245628-2-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
ddee3f2bdd
commit
2a6e5e8a2a
@@ -135,14 +135,14 @@ static int kernel_get_symbol_address_by_name(const char *name, u64 *addr,
|
||||
/* ref_reloc_sym is just a label. Need a special fix*/
|
||||
reloc_sym = kernel_get_ref_reloc_sym(&map);
|
||||
if (reloc_sym && strcmp(name, reloc_sym->name) == 0)
|
||||
*addr = (!map->reloc || reloc) ? reloc_sym->addr :
|
||||
*addr = (!map__reloc(map) || reloc) ? reloc_sym->addr :
|
||||
reloc_sym->unrelocated_addr;
|
||||
else {
|
||||
sym = machine__find_kernel_symbol_by_name(host_machine, name, &map);
|
||||
if (!sym)
|
||||
return -ENOENT;
|
||||
*addr = map__unmap_ip(map, sym->start) -
|
||||
((reloc) ? 0 : map->reloc) -
|
||||
((reloc) ? 0 : map__reloc(map)) -
|
||||
((reladdr) ? map__start(map) : 0);
|
||||
}
|
||||
return 0;
|
||||
@@ -400,7 +400,7 @@ static int find_alternative_probe_point(struct debuginfo *dinfo,
|
||||
"Consider identifying the final function used at run time and set the probe directly on that.\n",
|
||||
pp->function);
|
||||
} else
|
||||
address = map__unmap_ip(map, sym->start) - map->reloc;
|
||||
address = map__unmap_ip(map, sym->start) - map__reloc(map);
|
||||
break;
|
||||
}
|
||||
if (!address) {
|
||||
@@ -866,7 +866,7 @@ post_process_kernel_probe_trace_events(struct probe_trace_event *tevs,
|
||||
free(tevs[i].point.symbol);
|
||||
tevs[i].point.symbol = tmp;
|
||||
tevs[i].point.offset = tevs[i].point.address -
|
||||
(map->reloc ? reloc_sym->unrelocated_addr :
|
||||
(map__reloc(map) ? reloc_sym->unrelocated_addr :
|
||||
reloc_sym->addr);
|
||||
}
|
||||
return skipped;
|
||||
|
||||
Reference in New Issue
Block a user