Re: [v4,1/2] arch/powerpc: Implement Optprobes

From: Anju T Sudhakar
Date: Wed Feb 15 2017 - 00:14:37 EST


Thank You Michael. :)


On Tuesday 14 February 2017 06:10 PM, Michael Ellerman wrote:
On Wed, 2017-02-08 at 09:50:51 UTC, Anju T wrote:
Current infrastructure of kprobe uses the unconditional trap instruction
to probe a running kernel. Optprobe allows kprobe to replace the trap with
a branch instruction to a detour buffer. Detour buffer contains instructions
to create an in memory pt_regs. Detour buffer also has a call to
optimized_callback() which in turn call the pre_handler().
After the execution of the pre-handler, a call is made for instruction
emulation. The NIP is determined in advanced through dummy instruction
emulation and a branch instruction is created to the NIP at the end of
the trampoline.

To address the limitation of branch instruction in POWER architecture,
detour buffer slot is allocated from a reserved area. For the time being,
64KB is reserved in memory for this purpose.

Instructions which can be emulated using analyse_instr() are the candidates
for optimization. Before optimization ensure that the address range
between the detour buffer allocated and the instruction being probed
is within +/- 32MB.

Signed-off-by: Anju T Sudhakar <anju@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Naveen N. Rao <naveen.n.rao@xxxxxxxxxxxxxxxxxx>
Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/51c9c0843993528bffc920c54c2121

cheers