lkml.org 
[lkml]   [2019]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/4] x86/ftrace: make ftrace_int3_handler() not to skip fops invocation
On Mon, 29 Apr 2019 11:06:58 -0700
Linus Torvalds <torvalds@linux-foundation.org> wrote:

> +void replace_call(void *addr, const void *opcode, size_t len, void *target)
> +{
> + bp_int3_call_target = target;
> + bp_int3_call_return = addr + len;
> + bp_int3_handler_irqoff = emulate_call_irqoff;
> + text_poke_bp(addr, opcode, len, emulate_call_irqon);
> +}

Note, the function tracer does not use text poke. It does it in batch
mode. It can update over 40,000 calls in one go:

add int3 breakpoint to all 40,000 call sites.
sync()
change the last four bytes of each of those call sites
sync()
remove int3 from the 40,000 call site with new call.

It's a bit more intrusive than the static call updates we were
discussing before.

-- Steve

\
 
 \ /
  Last update: 2019-04-29 20:53    [W:0.480 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site