Thread (30 messages) 30 messages, 8 authors, 2018-12-13

Re: [PATCH v7 08/14] x86/ftrace: Use text_poke_*() infrastructure

From: Ingo Molnar <mingo@kernel.org>
Date: 2018-12-06 16:29:04
Also in: linux-integrity, lkml

* Nadav Amit [off-list ref] wrote:
quoted
On Dec 4, 2018, at 5:34 PM, Nadav Amit [off-list ref] wrote:

A following patch is going to make module allocated memory
non-executable. This requires to modify ftrace and make the memory
executable again after it is configured.

In addition, this patch makes ftrace use the general text poking
infrastructure instead ftrace's homegrown text patching. This provides
the advantages of having slightly "safer" code patching and avoiding
races with module removal or other mechanisms that patch the kernel
code.

Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Nadav Amit <redacted>
---
arch/x86/kernel/ftrace.c | 74 +++++++++++++---------------------------
1 file changed, 23 insertions(+), 51 deletions(-)
Steven Rostedt pointed that using text_poke() instead of
probe_kernel_write() would introduce considerable overheads. Running:

  # time { echo function > current_tracer; } 

takes 0.24s without this patch and 0.7s with. I don’t know whether to
consider it “so bad”. Obviously we can introduce a batching mechanism and/or
do some micro-optimization (the latter will not buy us much though).
This should definitely not regress, so can we try the batching approach?

Thanks,

	Ingo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help