Re: [regression, bisected] x86: efi: Pass boot services variableinfo to runtime code

From: Matthew Garrett
Date: Fri May 31 2013 - 12:28:42 EST


On Fri, May 31, 2013 at 10:43:49AM -0500, Russ Anderson wrote:

> When did writing EFI variables to nvram become necessary to boot on
> UEFI? And if it is necessary, why is it that only linux boot loaders
> that use EFI stubs (generally grub2) need it? The current kernel
> boots using EFI/grub and EFI/elilo. It is just when EFI stubs are
> used that the boot fails.

I think you've misunderstood the problem. If nvram becaomes full, some
systems crash during firmware initialisation. So we can't let nvram
become full. The obvious thing to do here is to look at the values from
QueryVariableInfo, but many systems won't perform any garbage collection
until they're almost out of space and so variables that have been
deleted still show up as used space. We can work around that by adding
up the size of the variables ourselves, but that only gives us the value
for runtime-visible variables. We also need to know how much space is
used by variables that are only visible during boot, hence calling
QueryVariableInfo before ExitBootServices.

> Which means the previous patch(es) that caused the bricking should
> get pulled, too.

There are no patches that cause the bricking.

--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/