Re: [PATCH 0/2] kprobes/x86: Allow "boost" for 10- and 11-byte instructions

From: Masami Hiramatsu
Date: Mon Jun 01 2015 - 17:45:13 EST


On 2015/06/02 1:32, Eugene Shatokhin wrote:
> Kprobes' "boost" feature allows to avoid single-stepping in some cases, along with its overhead.
> It is useful for the Kprobes that cannot be optimized for some reason.
>
> Currently, "boost" cannot be applied to the instructions of 10 and 11 bytes in size, including
> some rather commonly used kinds of MOV.
>
> The first of the two patches in this series fixes the code that checks if the jump needed for
> the boost fits in the insn slot (the conditional is too strict). This allows to apply "boost"
> to 10-byte instructions.
>
> As a side effect of commit 91e5ed49fca0 ("x86/asm/decoder: Fix and enforce max instruction
> size in the insn decoder"), the size of the instruction slot became 1 byte smaller, 15 bytes
> VS 16 bytes before that change. The second patch makes the size of each insn slot 16 bytes
> again (while keeping MAX_INSN_SIZE as 15). This allows to apply "boost" to 11-byte
> instructions as well.
>
> I have checked that "boost" does happen for at least "movq $0x1,0x100(%rbx)"
> (48 c7 83 00 01 00 00 01 00 00 00) in the kernel 4.1-rc6 after these changes.

Ah, I didn't expected that such long instruction existed without redundant prefixes.
I have some comment on that, but basically agree to support this.

Thank you!

--
Masami HIRAMATSU
Linux Technology Research Center, System Productivity Research Dept.
Center for Technology Innovation - Systems Engineering
Hitachi, Ltd., Research & Development Group
E-mail: masami.hiramatsu.pt@xxxxxxxxxxx
--
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/