• Abhishek Sagar's avatar
    ARM kprobes: core code · 24ba613c
    Abhishek Sagar authored
    This is a full implementation of Kprobes including Jprobes and
    Kretprobes support.
    
    This ARM implementation does not follow the usual kprobes double-
    exception model. The traditional model is where the initial kprobes
    breakpoint calls kprobe_handler(), which returns from exception to
    execute the instruction in its original context, then immediately
    re-enters after a second breakpoint (or single-stepping exception)
    into post_kprobe_handler(), each time the probe is hit..  The ARM
    implementation only executes one kprobes exception per hit, so no
    post_kprobe_handler() phase. All side-effects from the kprobe'd
    instruction are resolved before returning from the initial exception.
    As a result, all instructions are _always_ effectively boosted
    regardless of the type of instruction, and even regardless of whether
    or not there is a post-handler for the probe.
    Signed-off-by: default avatarAbhishek Sagar <sagar.abhishek@gmail.com>
    Signed-off-by: default avatarQuentin Barnes <qbarnes@gmail.com>
    Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
    24ba613c
kprobes.c 12.2 KB