From: Willy Tarreau <w@1wt.eu>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Andy Lutomirski <luto@kernel.org>,
Kees Cook <keescook@chromium.org>,
Steven Rostedt <rostedt@goodmis.org>,
"security@kernel.org" <security@kernel.org>,
X86 ML <x86@kernel.org>, Borislav Petkov <bp@alien8.de>,
Sasha Levin <sasha.levin@oracle.com>,
LKML <linux-kernel@vger.kernel.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Jan Beulich <jbeulich@suse.com>,
xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH 2/2] x86/ldt: allow to disable modify_ldt at runtime
Date: Mon, 3 Aug 2015 21:18:54 +0200 [thread overview]
Message-ID: <20150803191854.GC24014@1wt.eu> (raw)
In-Reply-To: <CALCETrVCC+eLKjGWWFcg2_nMN_8j2m0jp714YrEiJRj4Qy=zmg@mail.gmail.com>
On Mon, Aug 03, 2015 at 12:06:12PM -0700, Andy Lutomirski wrote:
> On Mon, Aug 3, 2015 at 12:01 PM, Willy Tarreau <w@1wt.eu> wrote:
(...)
> > I feel like it's probably part of a larger project then. Do you think
> > we should step back and only support 0/1 for now ? I also have the
> > patch available.
>
> Sounds good to me.
OK I'll send the other one instead once I unpack my PC.
> > Well the good thing is that SYSRET reused the LOADALL opcode so at
> > least this one cannot be screwed on 64-bit :-) It would have helped us
> > to emulate IRET though.
>
> You sure? I'm reasonably confident that Athlon 64 and newer support
> SYSRET in legacy and long mode. Of course, I think that SYSCALL is
> totally worthless in legacy mode (SYSCALL_MASK isn't available, so I
> suspect that the lack of sensible TF handling would be a
> show-stopper).
I meant loadall cannot be screwed since it was replaced.
> >> P.P.S. You know what would be *way* better than allowing IRET to
> >> fault? Just allow IRET to continue executing the next instruction on
> >> failure (I'm talking about #GP, #NP, and #SS here, not page faults).
> >>
> >> P.P.P.S. Who thought that IRET faults unmasking NMIs made any sense
> >> whatsoever when NMIs run on an IST stack? Seriously, people?
> >
> > A dedicated flag "don't clear NMI yet" would have been nice in EFLAGS
> > so that the software stack could set it in fault handlers. It would be
> > one-shot and always cleared by IRET. That would have been very handy.
> >
>
> How about a dedicated "NMI masked" flag in EFLAGS? That would be
> straightforward and dead simple to handle.
Sounds like an oxymoron. But such a flag should be atomically manipulated
so that you don't re-arm queued NMIs before calling iret. With two flags,
a read-only one for "NMI masked" and a modifiable one "keep NMI masked",
you can provide an atomic behaviour where you have this latch executed
on iret :
NMI_MASKED &= KEEP_NMI_MASKED;
KEEP_NMI_MASKED = 0;
But anyway we're discussing in the void, this CPU doesn't exist so unless
intel/AMD designers want to improve their design (and start by talking
together to reach the exact same behavior), we'll never see anything like
this :-/
Willy
next prev parent reply other threads:[~2015-08-03 19:19 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-03 18:23 [PATCH 0/2] x86: allow to enable/disable modify_ldt at run time Willy Tarreau
2015-08-03 18:23 ` [PATCH 1/2] sysctl: add a new generic strategy to make permanent changes on negative values Willy Tarreau
2015-08-03 18:33 ` Andy Lutomirski
2015-08-03 18:50 ` Willy Tarreau
2015-08-03 18:50 ` Willy Tarreau
2015-08-03 18:33 ` Andy Lutomirski
2015-08-03 18:23 ` Willy Tarreau
2015-08-03 18:23 ` [PATCH 2/2] x86/ldt: allow to disable modify_ldt at runtime Willy Tarreau
2015-08-03 18:23 ` Willy Tarreau
2015-08-03 18:45 ` Andy Lutomirski
2015-08-03 18:45 ` Andy Lutomirski
2015-08-03 19:01 ` Willy Tarreau
2015-08-03 19:06 ` Andy Lutomirski
2015-08-03 19:18 ` Willy Tarreau
2015-08-03 19:18 ` Willy Tarreau [this message]
2015-08-03 19:06 ` Andy Lutomirski
2015-08-03 19:01 ` Willy Tarreau
2015-08-04 3:54 ` Borislav Petkov
2015-08-04 6:00 ` Willy Tarreau
2015-08-04 6:00 ` Willy Tarreau
2015-08-04 3:54 ` Borislav Petkov
2015-08-03 22:35 ` Kees Cook
2015-08-03 23:19 ` Willy Tarreau
2015-08-03 23:19 ` Willy Tarreau
2015-08-04 1:36 ` Kees Cook
2015-08-04 1:36 ` Kees Cook
2015-08-03 22:35 ` Kees Cook
2015-08-04 8:49 ` [PATCH v3 1/1] x86: allow to enable/disable modify_ldt at run time Willy Tarreau
2015-08-04 8:49 ` Willy Tarreau
2015-08-05 8:00 ` Ingo Molnar
2015-08-05 8:00 ` Ingo Molnar
2015-08-05 8:08 ` Willy Tarreau
2015-08-05 8:08 ` Willy Tarreau
2015-08-05 8:26 ` Ingo Molnar
2015-08-05 9:03 ` Willy Tarreau
2015-08-05 9:10 ` Ingo Molnar
2015-08-05 9:10 ` Ingo Molnar
2015-08-05 9:03 ` Willy Tarreau
2015-08-05 8:26 ` Ingo Molnar
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=20150803191854.GC24014@1wt.eu \
--to=w@1wt.eu \
--cc=andrew.cooper3@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=jbeulich@suse.com \
--cc=keescook@chromium.org \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=rostedt@goodmis.org \
--cc=sasha.levin@oracle.com \
--cc=security@kernel.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xen.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.