trace_uprobe/sdt: Prevent multiple reference counter for same uprobe
authorRavi Bangoria <ravi.bangoria@linux.ibm.com>
Mon, 20 Aug 2018 04:42:49 +0000 (10:12 +0530)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Mon, 24 Sep 2018 08:44:54 +0000 (04:44 -0400)
commitccea8727dc27d8f46df6557f9260ab32760ef409
tree2c414868068fa1928f52fd5d295f3e17a5ff1c42
parent22bad38286d9a652d7061a02f9743bb2ebb84e59
trace_uprobe/sdt: Prevent multiple reference counter for same uprobe

We assume to have only one reference counter for one uprobe.
Don't allow user to add multiple trace_uprobe entries having
same inode+offset but different reference counter.

Ex,
  # echo "p:sdt_tick/loop2 /home/ravi/tick:0x6e4(0x10036)" > uprobe_events
  # echo "p:sdt_tick/loop2_1 /home/ravi/tick:0x6e4(0xfffff)" >> uprobe_events
  bash: echo: write error: Invalid argument

  # dmesg
  trace_kprobe: Reference counter offset mismatch.

There is one exception though:
When user is trying to replace the old entry with the new
one, we allow this if the new entry does not conflict with
any other existing entries.

Link: http://lkml.kernel.org/r/20180820044250.11659-4-ravi.bangoria@linux.ibm.com
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Reviewed-by: Song Liu <songliubraving@fb.com>
Reviewed-by: Oleg Nesterov <oleg@redhat.com>
Tested-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
kernel/trace/trace_uprobe.c