Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1329171
| From | Matt Fleming <matt@codeblueprint.co.uk> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] efi: runtime-wrappers: run UEFI Runtime Services with interrupts enabled |
| Date | 2016-02-08 16:20 +0100 |
| Message-ID | <qZVLB-74r-35@gated-at.bofh.it> (permalink) |
| References | <qY3ke-QW-15@gated-at.bofh.it> <qYsBY-W2-15@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Thu, 04 Feb, at 02:58:47PM, Ard Biesheuvel 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. > > @Sai: could you please confirm on-list as well? Thanks. > > Below is an updated version of the patch, rebased onto current tip/efi/core, > with the BUG_ON() removed that I left in inadvertently. I also added a mention > in the commit log that Windows leaves interrupts enabled as well. As far as > annotating the definition of efi_runtime_lock is concerned, the existing ~40 > lines of documentation should be sufficient imo so I left that as is. Thanks. > > --------8<---------------- > The UEFI spec allows Runtime Services to be invoked with interrupts > enabled. The only reason we were disabling interrupts was to prevent > recursive calls into the services on the same CPU, which will lead to > deadlock. However, the only context where such invocations may occur > legally is from efi-pstore via efivars, and that code has been updated > to call a non-blocking alternative when invoked from a non-interruptible > context. > > So instead, update the ordinary, blocking UEFI Runtime Services wrappers > to execute with interrupts enabled. This aims to prevent excessive interrupt > latencies on uniprocessor platforms with slow variable stores. > > Note that other OSes such as Windows call UEFI Runtime Services with > interrupts enabled as well. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > drivers/firmware/efi/runtime-wrappers.c | 71 ++++++++------------ > 1 file changed, 28 insertions(+), 43 deletions(-) Ingo, if you want to pick up this patch directly you can add my, Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk> Otherwise let me know and I'll send you a pull request.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Matt Fleming <matt@codeblueprint.co.uk> - 2016-02-01 23:10 +0100
Re: [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Ingo Molnar <mingo@kernel.org> - 2016-02-03 10:50 +0100
Re: [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-02-03 11:00 +0100
Re: [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Ingo Molnar <mingo@kernel.org> - 2016-02-03 12:00 +0100
Re: [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-02-03 12:40 +0100
Re: [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled Matt Fleming <matt@codeblueprint.co.uk> - 2016-02-03 13:10 +0100
[PATCH] efi: runtime-wrappers: run UEFI Runtime Services with interrupts enabled Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2016-02-04 15:00 +0100
Re: [PATCH] efi: runtime-wrappers: run UEFI Runtime Services with interrupts enabled Matt Fleming <matt@codeblueprint.co.uk> - 2016-02-08 16:20 +0100
Re: [PATCH] efi: runtime-wrappers: run UEFI Runtime Services with interrupts enabled Andy Lutomirski <luto@amacapital.net> - 2016-02-08 20:40 +0100
csiph-web