linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Andy Lutomirski <luto@amacapital.net>
Cc: "Linus Torvalds" <torvalds@linux-foundation.org>,
	"Joerg Roedel" <joro@8bytes.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@kernel.org>, "Peter Anvin" <hpa@zytor.com>,
	"the arch/x86 maintainers" <x86@kernel.org>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	linux-mm <linux-mm@kvack.org>,
	"Andrew Lutomirski" <luto@kernel.org>,
	"Dave Hansen" <dave.hansen@intel.com>,
	"Josh Poimboeuf" <jpoimboe@redhat.com>,
	"Jürgen Groß" <jgross@suse.com>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"Borislav Petkov" <bp@alien8.de>, "Jiri Kosina" <jkosina@suse.cz>,
	"Boris Ostrovsky" <boris.ostrovsky@oracle.com>,
	"Brian Gerst" <brgerst@gmail.com>,
	"David Laight" <David.Laight@aculab.com>,
	"Denys Vlasenko" <dvlasenk@redhat.com>,
	"Eduardo Valentin" <eduval@amazon.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Will Deacon" <will.deacon@arm.com>,
	"Liguori, Anthony" <aliguori@amazon.com>,
	"Daniel Gruss" <daniel.gruss@iaik.tugraz.at>,
	"Hugh Dickins" <hughd@google.com>,
	"Kees Cook" <keescook@google.com>,
	"Andrea Arcangeli" <aarcange@redhat.com>,
	"Waiman Long" <llong@redhat.com>,
	"David H . Gutteridge" <dhgutteridge@sympatico.ca>,
	"Joerg Roedel" <jroedel@suse.de>,
	"Arnaldo Carvalho de Melo" <acme@kernel.org>,
	"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
	"Jiri Olsa" <jolsa@redhat.com>,
	"Namhyung Kim" <namhyung@kernel.org>
Subject: Re: [PATCH 0/3] PTI for x86-32 Fixes and Updates
Date: Tue, 24 Jul 2018 23:18:42 +0200	[thread overview]
Message-ID: <20180724211842.GB29308@amd> (raw)
In-Reply-To: <39A1C149-DA03-46D1-801F-0205DCD69A36@amacapital.net>

[-- Attachment #1: Type: text/plain, Size: 3589 bytes --]

On Mon 2018-07-23 14:50:50, Andy Lutomirski wrote:
> 
> 
> > On Jul 23, 2018, at 2:38 PM, Pavel Machek <pavel@ucw.cz> wrote:
> > 
> >> On Mon 2018-07-23 12:00:08, Linus Torvalds wrote:
> >>> On Mon, Jul 23, 2018 at 7:09 AM Pavel Machek <pavel@ucw.cz> wrote:
> >>> 
> >>> Meanwhile... it looks like gcc is not slowed down significantly, but
> >>> other stuff sees 30% .. 40% slowdowns... which is rather
> >>> significant.
> >> 
> >> That is more or less expected.
> >> 
> >> Gcc spends about 90+% of its time in user space, and the system calls
> >> it *does* do tend to be "real work" (open/read/etc). And modern gcc's
> >> no longer have the pipe between cpp and cc1, so they don't have that
> >> issue either (which would have sjhown the PTI slowdown a lot more)
> >> 
> >> Some other loads will do a lot more time traversing the user/kernel
> >> boundary, and in 32-bit mode you won't be able to take advantage of
> >> the address space ID's, so you really get the full effect.
> > 
> > Understood. Just -- bzip2 should include quite a lot of time in
> > userspace, too. 
> > 
> >>> Would it be possible to have per-process control of kpti? I have
> >>> some processes where trading of speed for security would make sense.
> >> 
> >> That was pretty extensively discussed, and no sane model for it was
> >> ever agreed upon.  Some people wanted it per-thread, others per-mm,
> >> and it wasn't clear how to set it either and how it should inherit
> >> across fork/exec, and what the namespace rules etc should be.
> >> 
> >> You absolutely need to inherit it (so that you can say "I trust this
> >> session" or whatever), but at the same time you *don't* want to
> >> inherit if you have a server you trust that then spawns user processes
> >> (think "I want systemd to not have the overhead, but the user
> >> processes it spawns obviously do need protection").
> >> 
> >> It was just a morass. Nothing came out of it.  I guess people can
> >> discuss it again, but it's not simple.
> > 
> > I agree it is not easy. OTOH -- 30% of user-visible performance is a
> > _lot_. That is worth spending man-years on...  Ok, problem is not as
> > severe on modern CPUs with address space ID's, but...
> > 
> > What I want is "if A can ptrace B, and B has pti disabled, A can have
> > pti disabled as well". Now.. I see someone may want to have it
> > per-thread, because for stuff like javascript JIT, thread may have
> > rights to call ptrace, but is unable to call ptrace because JIT
> > removed that ability... hmm...
> 
> No, you don’t want that. The problem is that Meltdown isn’t a problem that exists in isolation. It’s very plausible that JavaScript code could trigger a speculation attack that, with PTI off, could read kernel memory.

Ok, you are right. It is more tricky then I thought.

Still, I probably don't need to run grep's and cat's with PTI
on. Chromium (etc) probably needs it. Python interpretter running my
own code probably does not.

Yes, my Thinkpad X60 is probably thermal-throttled. It is not really
new machine. I switched to T40p for now :-).

What is the "worst" case people are seeing?
time dd if=/dev/zero of=/dev/null bs=1 count=10000000
can reproduce 3x slowdown, but that's basically microbenchmark.

root-only per-process enable/disable of kpti should not be too hard to
do. Would there be interest in that?

Best regards,

								Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

  parent reply	other threads:[~2018-07-24 21:18 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-20 16:22 Joerg Roedel
2018-07-20 16:22 ` [PATCH 1/3] perf/core: Make sure the ring-buffer is mapped in all page-tables Joerg Roedel
2018-07-20 17:06   ` Andy Lutomirski
2018-07-20 17:48     ` Joerg Roedel
2018-07-20 19:32       ` Andy Lutomirski
2018-07-20 21:37         ` Joerg Roedel
2018-07-20 22:20           ` Andy Lutomirski
2018-07-21 21:06             ` Linus Torvalds
2018-07-20 19:27     ` Thomas Gleixner
2018-07-20 19:33       ` Andy Lutomirski
2018-07-20 19:43         ` Thomas Gleixner
2018-07-20 19:53           ` Thomas Gleixner
2018-07-20 16:22 ` [PATCH 2/3] x86/entry/32: Check for VM86 mode in slow-path check Joerg Roedel
2018-07-21 16:06   ` Pavel Machek
2018-07-20 16:22 ` [PATCH 3/3] x86/entry/32: Copy only ptregs on paranoid entry/exit path Joerg Roedel
2018-07-20 17:09   ` Andy Lutomirski
2018-07-20 21:42     ` Joerg Roedel
2018-07-23  3:49 ` [PATCH 0/3] PTI for x86-32 Fixes and Updates David H. Gutteridge
2018-07-23  7:29   ` Joerg Roedel
2018-07-26  3:47     ` David H. Gutteridge
2018-07-23 14:09 ` Pavel Machek
2018-07-23 19:00   ` Linus Torvalds
2018-07-23 21:38     ` Pavel Machek
2018-07-23 21:50       ` Andy Lutomirski
2018-07-23 21:55         ` Pavel Machek
2018-07-24 21:18         ` Pavel Machek [this message]
2018-07-23 21:59       ` Josh Poimboeuf
2018-07-23 22:07         ` Dave Hansen
2018-07-24 13:39     ` Pavel Machek
2018-07-24 14:39       ` Andy Lutomirski

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=20180724211842.GB29308@amd \
    --to=pavel@ucw.cz \
    --cc=David.Laight@aculab.com \
    --cc=aarcange@redhat.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=aliguori@amazon.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=bp@alien8.de \
    --cc=brgerst@gmail.com \
    --cc=daniel.gruss@iaik.tugraz.at \
    --cc=dave.hansen@intel.com \
    --cc=dhgutteridge@sympatico.ca \
    --cc=dvlasenk@redhat.com \
    --cc=eduval@amazon.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=hughd@google.com \
    --cc=jgross@suse.com \
    --cc=jkosina@suse.cz \
    --cc=jolsa@redhat.com \
    --cc=joro@8bytes.org \
    --cc=jpoimboe@redhat.com \
    --cc=jroedel@suse.de \
    --cc=keescook@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=llong@redhat.com \
    --cc=luto@amacapital.net \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=will.deacon@arm.com \
    --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