Re: [PATCH RFC 2/4] x86/arch_prctl: add ARCH_GET_NOPTI and ARCH_SET_NOPTI to enable/disable PTI

From: Willy Tarreau
Date: Mon Jan 08 2018 - 16:04:09 EST


On Mon, Jan 08, 2018 at 09:49:23PM +0100, Thomas Gleixner wrote:
> On Mon, 8 Jan 2018, Willy Tarreau wrote:
> > On Mon, Jan 08, 2018 at 09:54:05AM -0800, Linus Torvalds wrote:
> >
> > > So make the thing per-mm, and then at task switch time as you switch
> > > mms, you set the bit in a percpu variable for testing at kernel entry.
> >
> > I'll see how to do that, this is not yet 100% clear to me, I'm still
> > discovering (this code has immensely changed since last time I *really*
> > dug into it). So I suspect I'll have to set this variable in
> > __switch_to() based on this other MM flag.
>
> The right thing is probably the cpu entry area because that's what you can
> access before switching CR3 if PTI is enabled for the task

In fact I didn't need any such thing, because when coming from user
space I can simply check CR3.12 : if 0, we had PTI disabled for the
task, otherwise it's enabled.

I'll repost the cleaned up series ASAP, unfortunately I need to go now.

Thanks,
Willy