[PATCH 0/5] perf/probe: Support multiprobe and immediates

From: Masami Hiramatsu
Date: Mon Nov 04 2019 - 19:16:45 EST


This series adds multiprobe support on perf probe command.

This can be applied on top of my previous (sent last week)
bugfix series,

https://lkml.kernel.org/r/157241935028.32002.10228194508152968737.stgit@devnote2

Inlined functions or the lines which have multiple statements can
be compiled in multiple addresses. Current perf probe generates
different events for each address, but this is not useful for
users.

Since ftrace multiprobe per event support is on ftrace/for-next,
it is a time to push this series. To support multi-probe, this
adds below 4 patches + 1 minor fix.

- Fix a rare case bug for missing scope-DIE in some inlined
functions.
- Modify the naming scheme of probe event to Line number based
instead of function name based.
- Add multi-probe support on perf probe. This also converts
different register assignment on local variables for each
probe point.
- Add const value attribute support. It is possible that the
compiler assigns a constant value for optimized function
parameter or local variables. This handles such case.
- Introduce a magic number assignment to non-exist local variable.
Inlined functions can be embedded (inlined) in caller function
and the parameter or local vars in such inlined function can be
optimized out some place, but in some place we still can see
those vars. For supporting multiprobe correctly, we need to
fill out some value even if we can not find the given local vars.
So this fills it with "0xdeade12d(dead end)" magic number.


Thank you,

---

Masami Hiramatsu (5):
perf probe: Return a better scope DIE if there is no best scope
perf probe: Generate event name with line number
perf probe: Support multiprobe event
perf probe: Support DW_AT_const_value constant value
perf probe: Trace a magic number if variable is not found


tools/perf/util/probe-event.c | 19 +++++++-
tools/perf/util/probe-event.h | 3 +
tools/perf/util/probe-file.c | 14 ++++++
tools/perf/util/probe-file.h | 2 +
tools/perf/util/probe-finder.c | 90 ++++++++++++++++++++++++++++++++++++++--
tools/perf/util/probe-finder.h | 1
6 files changed, 121 insertions(+), 8 deletions(-)

--
Masami Hiramatsu (Linaro) <mhiramat@xxxxxxxxxx>