Re: [RFC PATCH 7/8] perf probe powerpc: Use DWARF info only if necessary
From: Naveen N. Rao <hidden>
Date: 2014-12-10 11:49:24
Also in:
lkml
On 2014/12/10 09:17PM, Michael Ellerman wrote:
On Tue, 2014-12-09 at 23:04 +0530, Naveen N. Rao wrote:quoted
Use symbol table lookups by default if DWARF is not necessary, since powerpc ABIv2 encodes local entry points in the symbol table and the function entry address in DWARF may not be appropriate for kprobes, as described here: https://sourceware.org/bugzilla/show_bug.cgi?id=17638Needs a better changelog.
Ok. Will add, but to elaborate quickly: DWARF will only include the entire function in low_pc/entry_pc and high_pc. It can't indicate the local entry point. Hence, we need to use the symbol table instead of DWARF on ABIv2.
quoted
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index 174c22e..adcdbd2 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c@@ -2382,6 +2382,14 @@ static int convert_to_probe_trace_events(struct perf_probe_event *pev, } } +#if defined(__powerpc64__) && defined(_CALL_ELF) && _CALL_ELF == 2 + if (!perf_probe_event_need_dwarf(pev)) { + ret = find_probe_trace_events_from_map(pev, tevs, max_tevs, target); + if (ret > 0) + return ret; /* Found in symbol table */ + } +#endifAnd should be in an arch helper, not a big powerpc wart dropped in the middle of the generic code.
Sure - will change. Thanks for the review! - Naveen