• Naveen N. Rao's avatar
    powerpc/kprobes: Convert __kprobes to NOKPROBE_SYMBOL() · 71f6e58e
    Naveen N. Rao authored
    Along similar lines as commit 9326638c ("kprobes, x86: Use NOKPROBE_SYMBOL()
    instead of __kprobes annotation"), convert __kprobes annotation to either
    NOKPROBE_SYMBOL() or nokprobe_inline. The latter forces inlining, in which case
    the caller needs to be added to NOKPROBE_SYMBOL().
    
    Also:
     - blacklist arch_deref_entry_point(), and
     - convert a few regular inlines to nokprobe_inline in lib/sstep.c
    
    A key benefit is the ability to detect such symbols as being
    blacklisted. Before this patch:
    
      $ cat /sys/kernel/debug/kprobes/blacklist | grep read_mem
      $ perf probe read_mem
      Failed to write event: Invalid argument
        Error: Failed to add events.
      $ dmesg | tail -1
      [ 3736.112815] Could not insert probe at _text+10014968: -22
    
    After patch:
      $ cat /sys/kernel/debug/kprobes/blacklist | grep read_mem
      0xc000000000072b50-0xc000000000072d20	read_mem
      $ perf probe read_mem
      read_mem is blacklisted function, skip it.
      Added new events:
        (null):(null)        (on read_mem)
        probe:read_mem       (on read_mem)
    
      You can now use it in all perf tools, such as:
    
    	  perf record -e probe:read_mem -aR sleep 1
    
      $ grep " read_mem" /proc/kallsyms
      c000000000072b50 t read_mem
      c0000000005f3b40 t read_mem
      $ cat /sys/kernel/debug/kprobes/list
      c0000000005f3b48  k  read_mem+0x8    [DISABLED]
    Acked-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    [mpe: Minor change log formatting, fix up some conflicts]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    71f6e58e
code-patching.c 14.2 KB