Re: [PATCH v5 4/6] arm64: kprobes instruction simulation support

From: David Long
Date: Fri Mar 06 2015 - 09:43:15 EST


On 03/06/15 06:39, Steve Capper wrote:
On 17 February 2015 at 23:11, David Long <dave.long@xxxxxxxxxx> wrote:
From: Sandeepa Prabhu <sandeepa.prabhu@xxxxxxxxxx>

Kprobes needs simulation of instructions that cannot be stepped
from different memory location, e.g.: those instructions
that uses PC-relative addressing. In simulation, the behaviour
of the instruction is implemented using a copy of pt_regs.

Following instruction catagories are simulated:
- All branching instructions(conditional, register, and immediate)
- Literal access instructions(load-literal, adr/adrp)

Conditional execution is limited to branching instructions in
ARM v8. If conditions at PSTATE do not match the condition fields
of opcode, the instruction is effectively NOP. Kprobes considers
this case as 'miss'.

Thanks to Will Cohen for assorted suggested changes.

Signed-off-by: Sandeepa Prabhu <sandeepa.prabhu@xxxxxxxxxx>
Signed-off-by: William Cohen <wcohen@xxxxxxxxxx>
Signed-off-by: David A. Long <dave.long@xxxxxxxxxx>
---

Hi,
Apologies for looking at these late (I was on holiday).

I've applied this series on top of 3.19, but I get the following compile error:
arch/arm64/kernel/kprobes-arm64.c:23:34: fatal error:
probes-simulate-insn.h: No such file or directory
#include "probes-simulate-insn.h"
^
compilation terminated.
scripts/Makefile.build:257: recipe for target
'arch/arm64/kernel/kprobes-arm64.o' failed

Is something missing from this patch?

Cheers,
--
Steve


Yes Steve, the patch is missing three new files. It passed my testing because I had not cleaned out non-checked-in files from my cloned repo. I've put a preliminary version of a v6 patch that addresses other feedback in my own public repo, and will send out a new patch in the near future after more testing and additional tweaks.

-dl

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/