Messages in this thread | | | From | Ravi Bangoria <> | Subject | [PATCH 0/3] powerpc: Emulation support for load/store instructions on LE | Date | Wed, 2 Nov 2016 14:23:00 +0530 |
| |
emulate_step is the basic infrastructure which is used by number of other kernel infrastructures like kprobe, hw-breakpoint(data breakpoint) etc. In case of kprobe, enabling emulation of load/store instructions will speedup the execution of probed instruction. In case of kernel-space breakpoint, causative instruction is first get emulated before executing user registered handler. If emulation fails, hw-breakpoint is disabled with error. As emulate_step does not support load/store instructions on LE, kernel-space hw-breakpoint infrastructure is broken on LE.
emulate_step() uses a number of underlying kernel functions that were initially not enabled for LE. This has been rectified since. So, fix emulate_step() for LE for the corresponding instructions.
Also add selftest which will run at boot if CONFIG_KPROBES_SANITY_TEST and CONFIG_PPC64 is set.
Changes w.r.t. RFC: - Enable emulation support for all types of (Normal, Floating Point, Vector and Vector Scalar) load/store instructions. - Introduce selftest to test emulate_step for load/store instructions.
Ravi Bangoria (3): powerpc: Emulation support for load/store instructions on LE powerpc: Add encoding for couple of load/store instructions powerpc: emulate_step test for load/store instructions
arch/powerpc/include/asm/ppc-opcode.h | 7 + arch/powerpc/include/asm/sstep.h | 8 + arch/powerpc/kernel/kprobes.c | 2 + arch/powerpc/lib/Makefile | 4 + arch/powerpc/lib/sstep.c | 20 -- arch/powerpc/lib/test_emulate_step.c | 439 ++++++++++++++++++++++++++++++++++ 6 files changed, 460 insertions(+), 20 deletions(-) create mode 100644 arch/powerpc/lib/test_emulate_step.c
-- 1.8.3.1
| |