perf: add prefix to event name

  add prefix p_ or r_ to event name to distinguish the probe and retprobe
events. So it will look like:

  # ./perf probe -x /lib64/libc.so.6 malloc
  probe_libc:p_malloc  (on 0x7f2b0)
  # ./perf probe -x /lib64/libc.so.6 malloc%return
  probe_libc:r_malloc  (on 0x7f2b0%return)

  # cat uprobe_events
  p:probe_libc/p_malloc /lib64/libc.so.6:0x000000000007f2b0
  r:probe_libc/r_malloc /lib64/libc.so.6:0x000000000007f2b0

Signed-off-by: Anton Arapov <anton@redhat.com>
uretprobes: implement uretprobe for trace_event interface

	ssia.

Signed-off-by: Anton Arapov <anton@redhat.com>
uretprobes/x86: hijack return address

Function to hijack the return address, replace it with a "trampoline"
and function to predict the stack pointer address value at return.

v2:
  remove ->doomed flag, kill task immediately

Signed-off-by: Anton Arapov <anton@redhat.com>
uretprobes: trampoline implementation

The first time a uprobe with return consumer is hit for a process, a
trampoline slot is obtained in the xol_area and initialized with a
breakpoint instruction. This slot is subsequently used by all
uretprobes.

todo:
  unify with xol_take_insn_slot()

Signed-off-by: Anton Arapov <anton@redhat.com>
uretprobes: return probe entry, prepare uretprobe

When a uprobe with return consumer is hit, prepare_uretprobe function is
invoked. It creates return_instance, hijacks return address and replaces
it with the trampoline.

v2:
  get rid of ->return_consumers

todo:
  protect uprobe

Signed-off-by: Anton Arapov <anton@redhat.com>
uretprobes: invoke return probe handlers

uretprobe handlers are invoked when the trampoline is hit, on completion
the trampoline is replaced with the saved return address and the
uretprobe instance deleted.

v2:
  get rid of ->return_consumers
  use rp_handler()

Signed-off-by: Anton Arapov <anton@redhat.com>
uretprobes: bypass logic

  todo: description.

PR #10078: http://pl.usenet.digipedia.org/thread/19373/11895/

Signed-off-by: Anton Arapov <anton@redhat.com>
dump

Signed-off-by: Anton Arapov <anton@redhat.com>