From: Peter Zijlstra <peterz@infradead.org>
To: Julien Thierry <jthierry@redhat.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>,
tglx@linutronix.de, linux-kernel@vger.kernel.org, x86@kernel.org,
mhiramat@kernel.org, mbenes@suse.cz,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [PATCH v2] objtool,ftrace: Implement UNWIND_HINT_RET_OFFSET
Date: Thu, 2 Apr 2020 09:50:36 +0200 [thread overview]
Message-ID: <20200402075036.GA20730@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <684d6e29-4a01-b4a5-f906-7bdee5ad108f@redhat.com>
On Thu, Apr 02, 2020 at 07:41:46AM +0100, Julien Thierry wrote:
> On 4/1/20 6:09 PM, Peter Zijlstra wrote:
> > The code in question (x86's sync_core()), is an exception return to
> > self. It pushes an exception frame that points to right after the
> > exception return instruction.
> >
> > This is the only usage of IRET in STT_FUNC symbols.
> >
> > So rather than teaching objtool how to interpret the whole
> > push;push;push;push;push;iret sequence, teach it how big the frame is
> > (arch_exception_frame_size) and let it continue.
> >
> > All the other (real) IRETs are in STT_NOTYPE in the entry assembly.
> >
>
> Right, I see.. However I'm not completely convinced by this. I must admit I
> haven't followed the whole conversation, but what was the issue with the
> HINT_IRET_SELF? It seemed more elegant, but I might be missing some context.
https://lkml.kernel.org/r/20200331211755.pb7f3wa6oxzjnswc@treble
Josh didn't think it was worth it, I think.
> Otherwise, it might be worth having a comment in the code to point that this
> only handles the sync_core() case.
I can certainly do that. Does ARM have any ERETs sprinkled around in
places it should not have? That is, is this going to be a problem for
you?
> Also, instead of adding a special "arch_exception_frame_size", I could
> suggest:
> - Picking this patch [1] from a completely arbitrary source
> - Getting rid of INSN_STACK type, any instruction could then include stack
> ops on top of their existing semantics, they can just have an empty list if
> they don't touch SP/BP
> - x86 decoder adds a stack_op to the iret to modify the stack pointer by the
> right amount
That's not the worst idea, lemme try that.
next prev parent reply other threads:[~2020-04-02 7:50 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-25 17:45 [PATCH v4 00/13] objtool: vmlinux.o and moinstr validation Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 01/13] objtool: Remove CFI save/restore special case Peter Zijlstra
2020-03-26 11:30 ` Peter Zijlstra
2020-03-26 12:58 ` Peter Zijlstra
2020-03-26 13:44 ` Josh Poimboeuf
2020-03-26 15:38 ` Peter Zijlstra
2020-03-27 4:19 ` Josh Poimboeuf
2020-03-26 14:44 ` Miroslav Benes
2020-03-26 15:04 ` Miroslav Benes
2020-03-26 13:00 ` Peter Zijlstra
2020-03-26 13:56 ` Josh Poimboeuf
2020-03-26 15:49 ` Peter Zijlstra
2020-03-26 19:57 ` Peter Zijlstra
2020-03-27 1:00 ` Josh Poimboeuf
2020-03-30 17:02 ` Peter Zijlstra
2020-03-30 19:02 ` Josh Poimboeuf
2020-03-30 20:02 ` Peter Zijlstra
2020-03-30 20:29 ` Peter Zijlstra
2020-03-31 11:16 ` [RFC][PATCH] objtool,ftrace: Implement UNWIND_HINT_RET_OFFSET Peter Zijlstra
2020-03-31 15:31 ` Steven Rostedt
2020-03-31 16:06 ` [RFC][PATCH] x86,ftrace: Shrink ftrace_regs_caller() by one byte Peter Zijlstra
2020-03-31 19:58 ` [RFC][PATCH] objtool,ftrace: Implement UNWIND_HINT_RET_OFFSET Peter Zijlstra
2020-03-31 20:26 ` Josh Poimboeuf
2020-03-31 20:23 ` Josh Poimboeuf
2020-03-31 20:40 ` Peter Zijlstra
2020-03-31 21:07 ` Peter Zijlstra
2020-03-31 21:17 ` Josh Poimboeuf
2020-03-31 21:20 ` Josh Poimboeuf
2020-03-31 22:27 ` [PATCH v2] " Peter Zijlstra
2020-04-01 14:14 ` Josh Poimboeuf
2020-04-01 14:22 ` Peter Zijlstra
2020-04-01 14:39 ` Josh Poimboeuf
2020-04-01 15:38 ` Peter Zijlstra
2020-04-01 15:39 ` Steven Rostedt
2020-04-01 15:43 ` Julien Thierry
2020-04-01 17:09 ` Peter Zijlstra
2020-04-01 17:33 ` Steven Rostedt
2020-04-01 17:45 ` Peter Zijlstra
2020-04-01 18:20 ` Steven Rostedt
2020-04-01 20:20 ` Peter Zijlstra
2020-04-01 17:37 ` Josh Poimboeuf
2020-04-02 6:41 ` Julien Thierry
2020-04-02 6:56 ` Julien Thierry
2020-04-02 7:50 ` Peter Zijlstra [this message]
2020-04-02 8:16 ` Julien Thierry
2020-04-02 8:17 ` Peter Zijlstra
2020-04-02 8:29 ` Julien Thierry
2020-04-02 8:58 ` Miroslav Benes
2020-03-25 17:45 ` [PATCH v4 02/13] objtool: Factor out CFI hints Peter Zijlstra
2020-03-25 18:26 ` Miroslav Benes
2020-03-25 19:41 ` Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 03/13] objtool: Rename struct cfi_state Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 04/13] objtool: Fix !CFI insn_state propagation Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 05/13] objtool: Implement noinstr validation Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 06/13] objtool: Optimize !vmlinux.o again Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 07/13] objtool: Use sec_offset_hash() for insn_hash Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 08/13] objtool: Detect loading function pointers across noinstr Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 09/13] kbuild/objtool: Add objtool-vmlinux.o pass Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 10/13] objtool: Avoid iterating !text section symbols Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 11/13] objtool: Rearrange validate_section() Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 12/13] objtool: Add STT_NOTYPE noinstr validation Peter Zijlstra
2020-03-25 17:45 ` [PATCH v4 13/13] objtool: Also consider .entry.text as noinstr Peter Zijlstra
2020-03-25 19:03 ` [PATCH v4 00/13] objtool: vmlinux.o and moinstr validation Miroslav Benes
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=20200402075036.GA20730@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=jpoimboe@redhat.com \
--cc=jthierry@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=mhiramat@kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.