Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757173Ab3EaW5k (ORCPT ); Fri, 31 May 2013 18:57:40 -0400 Received: from relay3.sgi.com ([192.48.152.1]:42570 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753129Ab3EaW5e (ORCPT ); Fri, 31 May 2013 18:57:34 -0400 Date: Fri, 31 May 2013 17:57:31 -0500 From: Russ Anderson To: Matthew Garrett Cc: James Bottomley , Ingo Molnar , Borislav Petkov , Jiri Kosina , joeyli , Matt Fleming , matt.fleming@intel.com, linux-efi@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, Thomas Gleixner , "H. Peter Anvin" , Linus Torvalds , Andrew Morton Subject: Re: [regression, bisected] x86: efi: Pass boot services variable info to runtime code Message-ID: <20130531225730.GB14752@sgi.com> Reply-To: Russ Anderson References: <20130531101250.GD30394@gmail.com> <20130531123015.GC17843@nazgul.tnic> <20130531124356.GA8212@gmail.com> <20130531143425.GA5850@srcf.ucam.org> <1370011357.1913.15.camel@dabdike.int.hansenpartnership.com> <20130531144826.GB5850@srcf.ucam.org> <20130531154348.GA17145@sgi.com> <20130531162815.GA8082@srcf.ucam.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130531162815.GA8082@srcf.ucam.org> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2592 Lines: 60 On Fri, May 31, 2013 at 05:28:16PM +0100, Matthew Garrett wrote: > 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. The problem for me is the system not booting. I was not familiar with the problem you are trying to solve, but have now looked at the links. > 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. OK. I get nvram looks full due to lack of garbage collection on some systems. Does QueryVariableInfo (at runtime) tell you it is full? Is the problem that it says it is full when it is not, or does not tell you it is full when it is? > 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, Is it valid to assume that only the kernel writes to nvram at runtime? Can bios log error information to nvram on an SMM interrupt (for example)? > hence calling > QueryVariableInfo before ExitBootServices. Correct me if I am wrong, but that is called from EFI stubs, which is only used by some bootloaders (sometimes grub2). Does that mean EFI/grub and EFI/elilo will not hit the problem, or will not have your fix? > > Which means the previous patch(es) that caused the bricking should > > get pulled, too. > > There are no patches that cause the bricking. I thought that was the problem you were trying to avoid. -- Russ Anderson, OS RAS/Partitioning Project Lead SGI - Silicon Graphics Inc rja@sgi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/