• Jon Medhurst's avatar
    ARM: kprobes: Optimise emulation of LDM and STM · 3d4a9978
    Jon Medhurst authored
    This patch improves the performance of LDM and STM instruction
    emulation. This is desirable because.
    
    - jprobes and kretprobes probe the first instruction in a function and,
      when the frame pointer is omitted, this instruction is often a STM
      used to push registers onto the stack.
    
    - The STM and LDM instructions are common in the body and tail of
      functions.
    
    - At the same time as being a common instruction form, they also have
      one of the slowest and most complicated simulation routines.
    
    The approach taken to optimisation is to use emulation rather than
    simulation, that is, a modified form of the instruction is run with
    an appropriate register context.
    
    Benchmarking on an OMAP3530 shows the optimised emulation is between 2
    and 3 times faster than the simulation routines. On a Kirkwood based
    device the relative performance was very significantly better than this.
    Signed-off-by: default avatarJon Medhurst <tixy@yxit.co.uk>
    Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    3d4a9978
kprobes-common.c 13.8 KB