From: Matt Fleming <matt@codeblueprint.co.uk>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
"H. Peter Anvin" <hpa@zytor.com>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Sai Praneeth Prakhya <sai.praneeth.prakhya@intel.com>,
Ingo Molnar <mingo@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [PATCH] efi: runtime-wrappers: run UEFI Runtime Services with interrupts enabled
Date: Thu, 11 Feb 2016 16:04:05 +0000 [thread overview]
Message-ID: <20160211160405.GK4134@codeblueprint.co.uk> (raw)
In-Reply-To: <CALCETrWWLGjqXmPKs7wF3uJ+jR-xctU0eYOESdVxMm5b4w8JMw@mail.gmail.com>
On Mon, 08 Feb, at 11:37:58AM, Andy Lutomirski wrote:
> On Feb 4, 2016 5:58 AM, "Ard Biesheuvel" <ard.biesheuvel@linaro.org> wrote:
> >
> > OK, since Sai has confirmed that Windows leaves interrupts enabled when
> > calling the EFI variable store related runtime services, we should be able
> > to do the same for Linux, or at least be slightly more confident that we
> > won't have to back out this change later.
>
> Could this use a mutex instead of a spinlock?
>
> Can someone with a mixed mode setup read a variable in a loop and make
> sure it doesn't crash and burn? It should work fine, but explicit
> testing would be nice. (It's interesting mainly because doing a mixed
> mode call with interrupts on can result in a non-IST CPL0 to CPL0
> exception delivery, which won't result in a stack switch. This could
> easily trigger a stack overflow, logic bug, microcode bug, or
> as-yet-unknown CPU "feature".
I don't have physical hardware for testing mixed mode anymore (that
was returned to Intel when I left) but testing with Qemu didn't turn
up any problems when running with interrupts enabled.
> Hmm. We should also audit the mixed mode entry code to make sure that
> the high bits of RSP are explicitly clear before switching into compat
> mode. If I had to make a guess about how CPUs behave, I'd guess
> pessimistically: Intel CPUs clear the high bits of RSP when switching
> into long mode due to interrupt delivery, and AMD CPUs leave them set
> just to mess with us.
Interesting thought. I'm not aware of anyone testing mixed mode with
AMD CPUs, so that would be a good data point.
> Also, a WARN_ON(in_interrupt()) somewhere might be a good sanity check.
lockdep should catch this kind of stuff pretty quickly since we grab
the spinlock in every code path.
next prev parent reply other threads:[~2016-02-11 16:04 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-01 22:06 [GIT PULL 00/14] EFI changes for v4.6 Matt Fleming
2016-02-01 22:06 ` [PATCH 01/14] efi: Expose non-blocking set_variable() wrapper to efivars Matt Fleming
2016-02-03 11:31 ` [tip:efi/core] " tip-bot for Ard Biesheuvel
[not found] ` <1454364428-494-1-git-send-email-matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-01 22:06 ` [PATCH 02/14] efi: Remove redundant efi_set_variable_nonblocking prototype Matt Fleming
2016-02-01 22:06 ` Matt Fleming
2016-02-03 11:31 ` [tip:efi/core] efi: Remove redundant efi_set_variable_nonblocking () prototype tip-bot for Ard Biesheuvel
2016-02-01 22:06 ` [PATCH 03/14] efi: runtime-wrappers: Add a nonblocking version of QueryVariableInfo Matt Fleming
2016-02-01 22:06 ` Matt Fleming
2016-02-03 11:31 ` [tip:efi/core] efi/runtime-wrappers: Add a nonblocking version of QueryVariableInfo() tip-bot for Ard Biesheuvel
2016-02-01 22:07 ` [PATCH 06/14] efi: runtime-wrapper: Get rid of the rtc_lock spinlock Matt Fleming
2016-02-01 22:07 ` Matt Fleming
2016-02-03 11:32 ` [tip:efi/core] efi: Runtime-wrapper: " tip-bot for Ard Biesheuvel
2016-02-01 22:07 ` [PATCH 10/14] efi: Make checkpatch complain less about efi.h GUID additions Matt Fleming
2016-02-01 22:07 ` Matt Fleming
[not found] ` <1454364428-494-11-git-send-email-matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-03 10:33 ` Ingo Molnar
2016-02-03 10:33 ` Ingo Molnar
2016-02-03 10:44 ` Matt Fleming
[not found] ` <20160203104432.GA2597-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-03 10:50 ` Ingo Molnar
2016-02-03 10:50 ` Ingo Molnar
2016-02-03 11:18 ` Matt Fleming
[not found] ` <20160203111838.GB2597-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-03 11:27 ` Ingo Molnar
2016-02-03 11:27 ` Ingo Molnar
2016-02-03 11:09 ` Joe Perches
2016-02-01 22:06 ` [PATCH 04/14] efi: Add nonblocking option to efi_query_variable_store() Matt Fleming
2016-02-03 11:32 ` [tip:efi/core] " tip-bot for Ard Biesheuvel
2016-02-01 22:06 ` [PATCH 05/14] efi: runtime-wrappers: Remove out of date comment regarding in_nmi() Matt Fleming
2016-02-03 11:32 ` [tip:efi/core] efi/runtime-wrappers: " tip-bot for Ard Biesheuvel
2016-02-01 22:07 ` [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Matt Fleming
2016-02-03 9:43 ` Ingo Molnar
[not found] ` <20160203094340.GA15890-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-03 9:57 ` Ard Biesheuvel
2016-02-03 9:57 ` Ard Biesheuvel
2016-02-03 10:58 ` Ingo Molnar
2016-02-03 11:33 ` Ard Biesheuvel
2016-02-03 12:01 ` Matt Fleming
2016-02-04 13:58 ` [PATCH] efi: runtime-wrappers: run " Ard Biesheuvel
2016-02-08 15:16 ` Matt Fleming
2016-02-08 19:37 ` Andy Lutomirski
[not found] ` <CALCETrWWLGjqXmPKs7wF3uJ+jR-xctU0eYOESdVxMm5b4w8JMw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-02-09 16:52 ` Ard Biesheuvel
2016-02-09 16:52 ` Ard Biesheuvel
2016-02-11 16:03 ` Matt Fleming
2016-02-11 16:04 ` Matt Fleming [this message]
2016-02-01 22:07 ` [PATCH 08/14] efivars: Use to_efivar_entry Matt Fleming
2016-02-03 11:33 ` [tip:efi/core] " tip-bot for Geliang Tang
2016-02-01 22:07 ` [PATCH 09/14] x86/efi-bgrt: Don't ignore the BGRT if the 'valid' bit is 0 Matt Fleming
2016-02-03 11:33 ` [tip:efi/core] x86/efi/bgrt: " tip-bot for Môshe van der Sterre
2016-02-01 22:07 ` [PATCH 11/14] x86/efi: Show actual ending addresses in efi_print_memmap Matt Fleming
2016-02-02 8:49 ` Laszlo Ersek
2016-02-03 11:33 ` [tip:efi/core] " tip-bot for Robert Elliott
2016-02-01 22:07 ` [PATCH 12/14] efi: Add NV memory attribute Matt Fleming
[not found] ` <1454364428-494-13-git-send-email-matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-02 8:54 ` Laszlo Ersek
2016-02-02 8:54 ` Laszlo Ersek
2016-02-03 11:34 ` [tip:efi/core] " tip-bot for Robert Elliott
2016-02-01 22:07 ` [PATCH 13/14] efi: Add Persistent Memory type name Matt Fleming
2016-02-02 8:56 ` Laszlo Ersek
2016-02-03 11:34 ` [tip:efi/core] " tip-bot for Robert Elliott
2016-02-01 22:07 ` [PATCH 14/14] x86/efi: Print size in binary units in efi_print_memmap Matt Fleming
2016-02-02 9:22 ` Laszlo Ersek
2016-02-03 10:40 ` Ingo Molnar
2016-02-03 11:28 ` Matt Fleming
2016-02-03 12:36 ` Andy Shevchenko
[not found] ` <20160203112829.GC2597-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2016-02-03 15:25 ` Elliott, Robert (Persistent Memory)
2016-02-03 15:25 ` Elliott, Robert (Persistent Memory)
2016-02-09 12:20 ` Ingo Molnar
[not found] ` <20160209122018.GA4178-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-09 12:53 ` Laszlo Ersek
2016-02-09 12:53 ` Laszlo Ersek
[not found] ` <56B9E166.6030405-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-02-09 13:14 ` Ingo Molnar
2016-02-09 13:14 ` 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=20160211160405.GK4134@codeblueprint.co.uk \
--to=matt@codeblueprint.co.uk \
--cc=a.p.zijlstra@chello.nl \
--cc=ard.biesheuvel@linaro.org \
--cc=hpa@zytor.com \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=sai.praneeth.prakhya@intel.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.