From: Peter Zijlstra <peterz@infradead.org>
To: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Andy Lutomirski <luto@kernel.org>, Ingo Molnar <mingo@kernel.org>,
Oleg Nesterov <oleg@redhat.com>,
LKML <linux-kernel@vger.kernel.org>,
Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>,
"David S . Miller" <davem@davemloft.net>, X86 ML <x86@kernel.org>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [RFC PATCH 1/1] x86/kprobes: Use int3 instead of debug trap for single-step
Date: Tue, 2 Mar 2021 09:41:31 +0100 [thread overview]
Message-ID: <YD36O5wCpSElA9Fi@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <161460769556.430263.12936080446789384938.stgit@devnote2>
On Mon, Mar 01, 2021 at 11:08:15PM +0900, Masami Hiramatsu wrote:
> Use int3 instead of debug trap exception for single-stepping the
> probed instructions. Some instructions which change the ip
> registers or modify IF flags are emulated because those are not
> able to be single-stepped by int3 or may allow the interrupt
> while single-stepping.
>
> This actually changes the kprobes behavior.
>
> - kprobes can not probe following instructions; int3, iret,
> far jmp/call which get absolute address as immediate,
> indirect far jmp/call, indirect near jmp/call with addressing
> by memory (register-based indirect jmp/call are OK), and
> vmcall/vmlaunch/vmresume/vmxoff.
>
> - If the kprobe post_handler doesn't set before registering,
> it may not be called in some case even if you set it afterwards.
> (IOW, kprobe booster is enabled at registration, user can not
> change it)
>
> But both are rare issue, unsupported instructions will not be
> used in the kernel (or rarely used), and post_handlers are
> rarely used (I don't see it except for the test code).
>
> Suggested-by: Andy Lutomirski <luto@kernel.org>
> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Very nice!
Aside of a few nits:
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
next prev parent reply other threads:[~2021-03-02 9:21 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-23 23:24 Why do kprobes and uprobes singlestep? Andy Lutomirski
2021-02-24 1:17 ` Masami Hiramatsu
2021-02-24 19:45 ` Andy Lutomirski
2021-02-25 2:22 ` Masami Hiramatsu
2021-02-25 6:03 ` Andy Lutomirski
2021-02-25 9:11 ` Masami Hiramatsu
2021-03-01 14:08 ` [RFC PATCH 0/1] x86/kprobes: Remoev single-step trap from x86 kprobes Masami Hiramatsu
2021-03-01 14:08 ` [RFC PATCH 1/1] x86/kprobes: Use int3 instead of debug trap for single-step Masami Hiramatsu
2021-03-02 8:06 ` Peter Zijlstra
2021-03-02 8:38 ` Peter Zijlstra
2021-03-02 8:41 ` Peter Zijlstra [this message]
2021-03-02 8:54 ` Peter Zijlstra
2021-03-02 12:51 ` Masami Hiramatsu
2021-03-02 13:58 ` Peter Zijlstra
2021-03-02 15:25 ` [PATCH -tip 0/3] x86/kprobes: Remoev single-step trap from x86 kprobes Masami Hiramatsu
2021-03-02 15:25 ` [PATCH -tip 1/3] x86/kprobes: Retrieve correct opcode for group instruction Masami Hiramatsu
2021-03-23 15:15 ` [tip: x86/core] " tip-bot2 for Masami Hiramatsu
2021-03-02 15:25 ` [PATCH -tip 2/3] x86/kprobes: Identify far indirect JMP correctly Masami Hiramatsu
2021-03-23 15:15 ` [tip: x86/core] " tip-bot2 for Masami Hiramatsu
2021-03-02 15:25 ` [PATCH -tip 3/3] x86/kprobes: Use int3 instead of debug trap for single-step Masami Hiramatsu
2021-03-23 15:15 ` [tip: x86/core] " tip-bot2 for Masami Hiramatsu
2021-03-17 14:55 ` [PATCH -tip 0/3] x86/kprobes: Remoev single-step trap from x86 kprobes Masami Hiramatsu
2021-03-17 16:26 ` Peter Zijlstra
2021-03-17 17:45 ` Andy Lutomirski
2021-02-25 9:59 ` Why do kprobes and uprobes singlestep? Peter Zijlstra
2021-03-01 16:51 ` Oleg Nesterov
2021-03-02 1:36 ` Andy Lutomirski
2021-03-02 20:24 ` Alexei Starovoitov
2021-03-02 21:02 ` Andy Lutomirski
2021-03-03 1:22 ` Alexei Starovoitov
2021-03-03 1:46 ` Andy Lutomirski
2021-03-03 2:18 ` Alexei Starovoitov
2021-03-03 13:27 ` Oleg Nesterov
2021-03-03 18:11 ` Daniel Xu
2021-03-03 19:14 ` Andy Lutomirski
2021-03-02 20:25 ` Oleg Nesterov
2021-03-02 20:35 ` Andy Lutomirski
2021-03-02 20:28 ` Oleg Nesterov
2021-03-02 2:22 ` Masami Hiramatsu
2021-03-02 2:48 ` Andy Lutomirski
2021-03-02 20:31 ` Oleg Nesterov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YD36O5wCpSElA9Fi@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=andrew.cooper3@citrix.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=rostedt@goodmis.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®