lkml.org 
[lkml]   [2015]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/2] kprobes/x86: Use 5-byte NOP when the code might be modified by ftrace
(2015/02/20 21:52), Ingo Molnar wrote:
>
> * Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> wrote:
>
>> (2015/02/20 19:26), Ingo Molnar wrote:
>>>
>>> * Petr Mladek <pmladek@suse.cz> wrote:
>>>
>>>> can_probe() checks if the given address points to the
>>>> beginning of an instruction. It analyzes all the
>>>> instructions from the beginning of the function until the
>>>> given address. The code might be modified by another
>>>> Kprobe. In this case, the current code is read into a
>>>> buffer, int3 breakpoint is replaced by the saved opcode
>>>> in the buffer, and can_probe() analyzes the buffer
>>>> instead.
>>>>
>>>> [...]
>>>
>>> Had to drop this patch due to build failures on 32-bit x86:
>>>
>>> arch/x86/kernel/kprobes/core.c:258:40: error: ‘MCOUNT_INSN_SIZE’ undeclared (first use in this function)
>>
>> Oops, MCOUNT_INSN_SIZE actually depends on
>> CONFIG_FUNCTION_TRACER... I think we can use 5 instead of
>> that since we are copying NOP_ATOMIC5.
>
> Or just make the define more widely available? It's not
> like the size changes from disabling the function tracer.

Yeah, it could be.
Actually, to tell the truth, if CONFIG_FUNCTION_TRACER=n,
ftrace_location() always returns 0, so the 2nd memcpy never be
executed (it should be disappeared by optimization).
Thus *this* issue is very local one, and I thought we'd better
fix this locally. :)

Thank you,

--
Masami HIRAMATSU
Software Platform Research Dept. Linux Technology Research Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com




\
 
 \ /
  Last update: 2015-02-20 14:41    [W:0.055 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site