All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Fleming <matt@codeblueprint.co.uk>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Andy Lutomirski <luto@amacapital.net>,
	"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:03:54 +0000	[thread overview]
Message-ID: <20160211160354.GJ4134@codeblueprint.co.uk> (raw)
In-Reply-To: <CAKv+Gu_sPq9wesOpEREyopVddpVW2P7m8YCDHHcBHkLk-kH+ew@mail.gmail.com>

On Tue, 09 Feb, at 05:52:34PM, Ard Biesheuvel wrote:
> On 8 February 2016 at 20:37, Andy Lutomirski <luto@amacapital.net> 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?
> >
> 
> When I first started working on this code, I proposed using a mutex,
> but at the time, we still had the efi-pstore case to worry about
> http://article.gmane.org/gmane.linux.kernel.efi/4112
> 
> In the mean time, we have modified the efi-pstore code so it simply
> gives up when the EFI varstore is busy, and we also got rid of the NMI
> special case where locks are ignored. In summary, it sounds to me that
> moving to a mutex should be feasible, but I am only really familiar
> with the ARM side of the implementation, which is far less complex
> than the x86 side, so Matt should confirm.

You cannot touch mutexes from interrupt context, not even to perform a
mutex_trylock(), and that's the problem.

Since the efi-pstore code can run from interrupt context we need to
use a locking primitive that works, even though we have all that
non-blocking logic. 

  reply	other threads:[~2016-02-11 16:03 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
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: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 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 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Matt Fleming
2016-02-03  9:43   ` Ingo Molnar
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
2016-02-09 16:52             ` Ard Biesheuvel
2016-02-09 16:52               ` Ard Biesheuvel
2016-02-11 16:03               ` Matt Fleming [this message]
2016-02-11 16:04             ` Matt Fleming
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 10/14] efi: Make checkpatch complain less about efi.h GUID additions Matt Fleming
2016-02-01 22:07   ` Matt Fleming
2016-02-03 10:33   ` Ingo Molnar
2016-02-03 10:33     ` Ingo Molnar
2016-02-03 10:44     ` Matt Fleming
2016-02-03 10:50       ` Ingo Molnar
2016-02-03 10:50         ` Ingo Molnar
2016-02-03 11:18         ` Matt Fleming
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: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
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
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
2016-02-09 12:53             ` Laszlo Ersek
2016-02-09 12:53               ` Laszlo Ersek
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=20160211160354.GJ4134@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.