On 3 February 2016 at 11:58, Ingo Molnar <mingo@xxxxxxxxxx> wrote: > > * 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. > I think this might have been the reason Matt wanted this in -next early, but I will let him confirm whether that was the case. > 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. > I am not sure how yet, but I am going to try and figure out what Windows does. I suppose hacking OVMF to record some IRQ mask information when RT services are being invoked should be sufficient, but I am going to need some help from someone that understands OVMF and x86 (Matt?) -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html