Re: [PATCH 07/14] efi: runtime-wrappers: Run UEFI Runtime Services with interrupts enabled
From: Ingo Molnar
Date: Wed Feb 03 2016 - 05:59:03 EST
* Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> wrote:
> > More fundamentally, this makes me nervous:
> >
> > > The UEFI spec allows Runtime Services to be invoked with interrupts
> > > enabled. [...]
> >
> > So what really matters is not what the spec says, but how Windows executes
> > UEFI firmware code in practice.
> >
> > If major versions of Windows calls UEFI firmware with interrupts disabled,
> > then frankly I don't think we should interrupt them under Linux either,
> > regardless of what the spec says ...
> >
> > Random firmware code getting interrupted by the OS changes timings and might
> > have other side effects the firmware code might not expect - so the question
> > is, does Windows already de facto allow the IRQ preemption of firmware calls?
> >
>
> Good question. I will try to find out.
Note that if there's a reasonable (but not 100%) case in favor of keeping irqs
enabled, we can try your patch, with the possibility that we might have to revert
it, should it cause problems.
In practice we probably already interrupt EFI services with NMI interrupts, which
can be pretty heavy as well if they for example generate printks.
So I'm not against this change in a strong fashion - I'm just a bit cautious and
it would be nice to know how Windows behaves here.
Thanks,
Ingo