Messages in this thread | | | Date | Fri, 4 Mar 2022 14:05:19 -0800 | From | Josh Poimboeuf <> | Subject | Re: [PATCH v3 18/39] x86/ibt,ftrace: Make function-graph play nice |
| |
On Fri, Mar 04, 2022 at 10:44:54PM +0100, Peter Zijlstra wrote: > On Fri, Mar 04, 2022 at 01:03:34PM -0800, Josh Poimboeuf wrote: > > On Fri, Mar 04, 2022 at 08:48:53PM +0100, Peter Zijlstra wrote: > > > On Fri, Mar 04, 2022 at 09:51:54AM -0800, Josh Poimboeuf wrote: > > > > On Thu, Mar 03, 2022 at 12:23:39PM +0100, Peter Zijlstra wrote: > > > > > + > > > > > + addq $16, %rsp > > > > > + ANNOTATE_INTRA_FUNCTION_CALL > > > > > + call .Ldo_rop > > > > > + int3 > > > > > +.Ldo_rop: > > > > > + mov %rdi, (%rsp) > > > > > + UNWIND_HINT_FUNC > > > > > + RET > > > > > > > > Why the int3? > > > > > > Speculation trap :-) Either I'm too paranoid or not paranoid enough; but > > > without it it's just too close to a retpoline and it doesn't feel right. > > > > Um, it *is* a retpoline :-) > > > > Can you just use the RETPOLINE macro? Along with a comment stating why > > it can't just do a JMP_NOSPEC? > > There is no RETPOLINE macro; or rather it is completely contained in > lib/retpoline.S and I'd sorta like to keep it that way. > > That said, I can stick a comment on.
The only reason it's in retpoline.S is because nobody else needed it.
It just seems weird to reinvent the wheel, especially with a slightly different method of stopping speculation.
And I could envision other cases where we might want an unconditional retpoline.
Your call though...
-- Josh
| |