• Masami Hiramatsu's avatar
    kprobes: Introduce kprobes jump optimization · afd66255
    Masami Hiramatsu authored
    Introduce kprobes jump optimization arch-independent parts.
    Kprobes uses breakpoint instruction for interrupting execution
    flow, on some architectures, it can be replaced by a jump
    instruction and interruption emulation code. This gains kprobs'
    performance drastically.
    
    To enable this feature, set CONFIG_OPTPROBES=y (default y if the
    arch supports OPTPROBE).
    
    Changes in v9:
     - Fix a bug to optimize probe when enabling.
     - Check nearby probes can be optimize/unoptimize when disarming/arming
       kprobes, instead of registering/unregistering. This will help
       kprobe-tracer because most of probes on it are usually disabled.
    
    Changes in v6:
     - Cleanup coding style for readability.
     - Add comments around get/put_online_cpus().
    
    Changes in v5:
     - Use get_online_cpus()/put_online_cpus() for avoiding text_mutex
       deadlock.
    Signed-off-by: default avatarMasami Hiramatsu <mhiramat@redhat.com>
    Cc: systemtap <systemtap@sources.redhat.com>
    Cc: DLE <dle-develop@lists.sourceforge.net>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Jim Keniston <jkenisto@us.ibm.com>
    Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Anders Kaseorg <andersk@ksplice.com>
    Cc: Tim Abbott <tabbott@ksplice.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Jason Baron <jbaron@redhat.com>
    Cc: Mathieu Desnoyers <compudj@krystal.dyndns.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    LKML-Reference: <20100225133407.6725.81992.stgit@localhost6.localdomain6>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    afd66255
kprobes.c 47.9 KB