mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: Borislav Petkov <bp@alien8.de>
Cc: Andy Lutomirski <luto@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>, X86 ML <x86@kernel.org>,
	Brian Gerst <brgerst@gmail.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Ingo Molnar <mingo@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Kees Cook <keescook@chromium.org>
Subject: Re: [RFC PATCH v2 2/6] x86/arch_prctl: add ARCH_GET_NOPTI and ARCH_SET_NOPTI to enable/disable PTI
Date: Wed, 10 Jan 2018 16:39:46 +0100	[thread overview]
Message-ID: <20180110153946.GB14178@1wt.eu> (raw)
In-Reply-To: <20180110144239.cm5t7j6s7akkpked@pd.tnic>

Hi Boris!

On Wed, Jan 10, 2018 at 03:42:39PM +0100, Borislav Petkov wrote:
> On Tue, Jan 09, 2018 at 11:40:09PM +0100, Willy Tarreau wrote:
> > Boris, please don't try to make me look like a fool when I'm trying to
> > explain a common process.
> 
> I haven't even intended to do that, sorry, maybe you're misunderstanding
> me.

OK no worries :-)

> > No, your distro did. Please keep in mind that you were the one asking me
> > to have this option so that distros can enable it to please their users,
> > or possibly in fact to remove it to please the competitors.
> 
> ... I was asking for this so that I can completely keep the code out of the
> built kernel but from reading this thread, it sounds to me like we'd
> need the full spectrum of options:
> 
> 1. prohibit disabling of PTI
> 2. per-process PTI disabling
> 3. disable PTI on the system
> 
> and then show people how to do that and do that at runtime. Apparently,
> it is important to people to be able to control that.

It suddenly comes to my mind that this sysctl I suggested this morning
could in fact serve both purposes and be easier to understand, with 4
values. But in fact I hardly find a valid reason for disabling it for
the whole system via a sysctl (I could be proven wrong though). For
example, when building a load generator for my lab I can easily build
my kernels without PTI and/or have pti=off on the cmdline, that's fine.

For production, disabling PTI system-wide when I'm supposed to know what
performance critical processes should be exempted doesn't appeal me very
much, especially if it can happen by accident. So in the end I think that
"pti=off" on the cmdline should be the only way to disable it system-wide
as it doesn't represent a reasonable production case. Disabling it per
process should be allowed via a sysctl, which would also be locked disabled
for safety purposes.

I'll go work on something like this to illustrate better, as I'm well
aware that I never explain well what I'm thinking about.

> And also explain what each option means so that they can evaluate
> themselves what they'd prefer.

Clear explanations are an important part of the solution, as we want
it to be safe by default and only let knowledgeable people turn it off
on purpose.

Thanks,
Willy

  reply	other threads:[~2018-01-10 15:40 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-09 12:56 [RFC PATCH v2 0/6] Per process PTI activation Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 1/6] x86/mm: add a pti_disable entry in mm_context_t Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 2/6] x86/arch_prctl: add ARCH_GET_NOPTI and ARCH_SET_NOPTI to enable/disable PTI Willy Tarreau
2018-01-09 14:17   ` Borislav Petkov
2018-01-09 14:36     ` Willy Tarreau
2018-01-09 14:51       ` Borislav Petkov
2018-01-09 14:54         ` Willy Tarreau
2018-01-09 21:26           ` Andy Lutomirski
2018-01-09 21:29             ` Borislav Petkov
2018-01-09 21:32               ` Willy Tarreau
2018-01-09 21:46                 ` Borislav Petkov
2018-01-09 22:06                   ` Willy Tarreau
2018-01-09 22:20                     ` Borislav Petkov
2018-01-09 22:29                       ` Dave Hansen
2018-01-09 22:40                       ` Willy Tarreau
2018-01-10 14:42                         ` Borislav Petkov
2018-01-10 15:39                           ` Willy Tarreau [this message]
2018-01-10 16:09                             ` Borislav Petkov
2018-01-10 16:19                               ` Willy Tarreau
2018-01-10 17:28                                 ` Borislav Petkov
2018-01-10  7:31                       ` Ingo Molnar
2018-01-10  7:37                         ` Willy Tarreau
2018-01-10  7:59                           ` Ingo Molnar
2018-01-09 23:53                     ` Andy Lutomirski
2018-01-10  4:25                       ` Willy Tarreau
2018-01-10  7:25               ` Ingo Molnar
2018-01-10 14:45                 ` Borislav Petkov
2018-01-10 15:43                   ` Willy Tarreau
2018-01-10 15:45                   ` Ingo Molnar
2018-01-09 21:34             ` Kees Cook
2018-01-09 21:41             ` Willy Tarreau
2018-01-09 21:50               ` Kees Cook
2018-01-09 22:03                 ` Willy Tarreau
2018-01-10  7:13             ` Ingo Molnar
2018-01-12 15:03   ` David Laight
2018-01-12 15:06     ` Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 3/6] x86/pti: add a per-cpu variable pti_disable Willy Tarreau
2018-01-10  7:19   ` Ingo Molnar
2018-01-10  7:29     ` Willy Tarreau
2018-01-10  8:01       ` Ingo Molnar
2018-01-10  8:50         ` Willy Tarreau
2018-01-10  8:59           ` Ingo Molnar
2018-01-10  9:00             ` Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 4/6] x86/pti: don't mark the user PGD with _PAGE_NX Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 5/6] x86/entry/pti: avoid setting CR3 when it's already correct Willy Tarreau
2018-01-10  7:16   ` Ingo Molnar
2018-01-10  7:18     ` Willy Tarreau
2018-01-10 20:29   ` Dave Hansen
2018-01-11  6:46     ` Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 6/6] x86/entry/pti: don't switch PGD on when pti_disable is set Willy Tarreau
2018-01-10  7:15   ` Ingo Molnar
2018-01-10  7:23     ` Willy Tarreau
2018-01-10  8:22   ` Peter Zijlstra
2018-01-10  9:11     ` Willy Tarreau
2018-01-10 19:21       ` Andy Lutomirski
2018-01-10 19:39         ` Willy Tarreau
2018-01-10 19:44           ` Andy Lutomirski
2018-01-10 19:50         ` Linus Torvalds
2018-01-10 20:04           ` Andy Lutomirski
2018-01-11  6:42           ` Willy Tarreau
2018-01-11 15:29             ` Dave Hansen
2018-01-11 15:44               ` Willy Tarreau
2018-01-11 15:51                 ` Dave Hansen
2018-01-11 17:02                   ` Andy Lutomirski
2018-01-11 18:21                     ` Alexei Starovoitov
2018-01-11 18:30                       ` Dave Hansen
2018-01-11 18:32                       ` Josh Poimboeuf
2018-01-11 18:36                         ` Linus Torvalds
2018-01-11 18:38                         ` Dave Hansen
2018-01-11 18:51                           ` Linus Torvalds
2018-01-11 18:57                             ` Dave Hansen
2018-01-11 19:05                               ` Josh Poimboeuf
2018-01-11 19:07                               ` Borislav Petkov
2018-01-11 19:17                                 ` Dave Hansen
2018-01-11 19:19                                   ` Olivier Galibert
2018-01-11 19:26                                     ` Josh Poimboeuf
2018-01-11 19:34                                       ` Alan Cox
2018-01-11 21:23                                         ` Willy Tarreau
2018-01-11 21:28                                           ` Linus Torvalds
2018-01-11 22:06                                             ` Willy Tarreau
2018-01-12 16:37                                               ` David Laight
2018-01-11 19:12                               ` Linus Torvalds
2018-01-11 19:38                               ` Alexei Starovoitov
2018-01-11 19:11                           ` Willy Tarreau
2018-01-11 20:00                     ` Dave Hansen
2018-01-11 17:09                 ` Andy Lutomirski
2018-01-11 17:40                   ` Willy Tarreau
2018-01-11 17:53                     ` Andy Lutomirski
2018-01-11 18:05                       ` Willy Tarreau
2018-01-11 18:15                         ` Dave Hansen
2018-01-11 18:31                           ` Linus Torvalds
2018-01-11 18:25                     ` Linus Torvalds
2018-01-11 18:26                       ` Linus Torvalds
2018-01-11 19:33                         ` Andy Lutomirski
2018-01-12 20:22                           ` Ingo Molnar
2018-01-12 21:18                             ` Andy Lutomirski
2018-01-12 21:54                               ` Willy Tarreau
2018-01-11 21:59                       ` Willy Tarreau
2018-01-12 16:27                       ` David Laight
2018-01-12 17:55                         ` Linus Torvalds
2018-01-12 19:36                           ` Willy Tarreau
2018-01-11 18:35                 ` Dave Hansen
2018-01-11 21:49                   ` Willy Tarreau

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=20180110153946.GB14178@1wt.eu \
    --to=w@1wt.eu \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jpoimboe@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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®