diff options
author | Jon Medhurst <tixy@yxit.co.uk> | 2011-06-14 15:54:28 +0100 |
---|---|---|
committer | Tixy <tixy@medhuaa1.miniserver.com> | 2011-07-13 17:32:45 +0000 |
commit | 3d4a99785abee0687f8fad9a055d2f0c61a9dd57 (patch) | |
tree | 3a7688c8b37935dcab093b86d6afb6564e52dab2 /arch/arm/mach-ixp4xx | |
parent | 235a4ce79feb8d5351f9164981bc57d5e29f974b (diff) | |
download | blackbird-op-linux-3d4a99785abee0687f8fad9a055d2f0c61a9dd57.tar.gz blackbird-op-linux-3d4a99785abee0687f8fad9a055d2f0c61a9dd57.zip |
ARM: kprobes: Optimise emulation of LDM and STM
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: Jon Medhurst <tixy@yxit.co.uk>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Diffstat (limited to 'arch/arm/mach-ixp4xx')
0 files changed, 0 insertions, 0 deletions