All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Garrett <mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
To: Russ Anderson <rja-sJ/iWh9BUns@public.gmane.org>
Cc: James Bottomley
	<James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>,
	Ingo Molnar <mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	Borislav Petkov <bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org>,
	Jiri Kosina <jkosina-AlSwsSmVLrQ@public.gmane.org>,
	joeyli <jlee-IBi9RG/b67k@public.gmane.org>,
	Matt Fleming
	<matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>,
	matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
	"H. Peter Anvin" <hpa-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
	Linus Torvalds
	<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
	Andrew Morton
	<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
Subject: Re: [regression, bisected] x86: efi: Pass boot services variable info to runtime code
Date: Sat, 1 Jun 2013 01:03:11 +0100	[thread overview]
Message-ID: <20130601000311.GA15126@srcf.ucam.org> (raw)
In-Reply-To: <20130531225730.GB14752-sJ/iWh9BUns@public.gmane.org>

On Fri, May 31, 2013 at 05:57:31PM -0500, Russ Anderson wrote:
> On Fri, May 31, 2013 at 05:28:16PM +0100, Matthew Garrett wrote:
> >                                           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?

QueryVariableInfo reports the amount used *including garbage*. This 
makes it useless for determining how much space is available for the 
firmware to use.

> >                                       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)?

There's a limited number of situations where the firmware can write to 
nvram, but they're basically uninteresting. Practically speaking, it's 
always via the kernel once ExitBootServices() has been called.

> >                                                      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?

Will not have the fix. Boot EFI systems via the EFI stub.

-- 
Matthew Garrett | mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org

WARNING: multiple messages have this Message-ID (diff)
From: Matthew Garrett <mjg59@srcf.ucam.org>
To: Russ Anderson <rja@sgi.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
	Ingo Molnar <mingo@kernel.org>, Borislav Petkov <bp@alien8.de>,
	Jiri Kosina <jkosina@suse.cz>, joeyli <jlee@suse.com>,
	Matt Fleming <matt@console-pimps.org>,
	matt.fleming@intel.com, linux-efi@vger.kernel.org,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@linux.intel.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [regression, bisected] x86: efi: Pass boot services variable info to runtime code
Date: Sat, 1 Jun 2013 01:03:11 +0100	[thread overview]
Message-ID: <20130601000311.GA15126@srcf.ucam.org> (raw)
In-Reply-To: <20130531225730.GB14752@sgi.com>

On Fri, May 31, 2013 at 05:57:31PM -0500, Russ Anderson wrote:
> On Fri, May 31, 2013 at 05:28:16PM +0100, Matthew Garrett wrote:
> >                                           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?

QueryVariableInfo reports the amount used *including garbage*. This 
makes it useless for determining how much space is available for the 
firmware to use.

> >                                       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)?

There's a limited number of situations where the firmware can write to 
nvram, but they're basically uninteresting. Practically speaking, it's 
always via the kernel once ExitBootServices() has been called.

> >                                                      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?

Will not have the fix. Boot EFI systems via the EFI stub.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

  parent reply	other threads:[~2013-06-01  0:03 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-22 16:27 [regression, bisected] x86: efi: Pass boot services variable info to runtime code Russ Anderson
2013-05-22 16:27 ` Russ Anderson
     [not found] ` <20130522162747.GA20816-sJ/iWh9BUns@public.gmane.org>
2013-05-23 11:58   ` Matt Fleming
2013-05-23 11:58     ` Matt Fleming
     [not found]     ` <20130523115801.GJ14575-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-05-23 20:32       ` Russ Anderson
2013-05-23 20:32         ` Russ Anderson
     [not found]         ` <20130523203234.GD20913-sJ/iWh9BUns@public.gmane.org>
2013-05-24  7:43           ` Matt Fleming
2013-05-24  7:43             ` Matt Fleming
     [not found]             ` <20130524074331.GL14575-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-05-24 11:09               ` Borislav Petkov
2013-05-24 11:09                 ` Borislav Petkov
     [not found]                 ` <20130524110911.GA32220-K5JNixvcfoxupOikMc4+xw@public.gmane.org>
2013-05-24 11:40                   ` Matt Fleming
2013-05-24 11:40                     ` Matt Fleming
2013-05-24 16:11               ` Robin Holt
2013-05-24 16:11                 ` Robin Holt
     [not found]                 ` <20130524161111.GE3672-sJ/iWh9BUns@public.gmane.org>
2013-05-24 17:02                   ` Russ Anderson
2013-05-24 17:02                     ` Russ Anderson
     [not found]                     ` <20130524170214.GA30179-sJ/iWh9BUns@public.gmane.org>
2013-05-24 21:05                       ` Dave Jones
2013-05-24 21:05                         ` Dave Jones
     [not found]                         ` <20130524210534.GA15466-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-05-27  4:27                           ` joeyli
2013-05-27  4:27                             ` joeyli
     [not found]                             ` <1369628832.19026.22.camel-ONCj+Eqt86TasUa73XJKwA@public.gmane.org>
2013-05-27  4:32                               ` joeyli
2013-05-27  4:32                                 ` joeyli
2013-05-28  2:43                               ` Russ Anderson
2013-05-28  2:43                                 ` Russ Anderson
2013-05-24 20:05               ` Russ Anderson
2013-05-24 20:05                 ` Russ Anderson
     [not found]                 ` <20130524200539.GA3322-sJ/iWh9BUns@public.gmane.org>
2013-05-24 20:11                   ` Matthew Garrett
2013-05-24 20:11                     ` Matthew Garrett
2013-05-24 20:49                     ` Russ Anderson
2013-05-24 20:49                       ` Russ Anderson
     [not found]                       ` <20130524204937.GB3322-sJ/iWh9BUns@public.gmane.org>
2013-05-28 10:50                         ` Matt Fleming
2013-05-28 10:50                           ` Matt Fleming
2013-05-28 10:53                   ` Matt Fleming
2013-05-28 10:53                     ` Matt Fleming
2013-05-28  8:35               ` Ingo Molnar
2013-05-28  8:35                 ` Ingo Molnar
2013-05-29 21:01               ` Russ Anderson
2013-05-29 21:01                 ` Russ Anderson
     [not found]                 ` <20130529210115.GC28027-sJ/iWh9BUns@public.gmane.org>
2013-05-29 22:22                   ` Jiri Kosina
2013-05-29 22:22                     ` Jiri Kosina
     [not found]                     ` <alpine.LRH.2.00.1305300018180.1111-1ReQVI26iDCaZKY3DrU6dA@public.gmane.org>
2013-05-29 22:46                       ` Russ Anderson
2013-05-29 22:46                         ` Russ Anderson
     [not found]                         ` <20130529224645.GA16582-sJ/iWh9BUns@public.gmane.org>
2013-05-29 22:53                           ` Jiri Kosina
2013-05-29 22:53                             ` Jiri Kosina
     [not found]                             ` <alpine.LNX.2.00.1305300048520.30576-ztGlSCb7Y1iN3ZZ/Hiejyg@public.gmane.org>
2013-05-30  2:16                               ` joeyli
2013-05-30  2:16                                 ` joeyli
     [not found]                                 ` <1369880172.17397.11.camel-ONCj+Eqt86TasUa73XJKwA@public.gmane.org>
2013-05-30 22:17                                   ` Russ Anderson
2013-05-30 22:17                                     ` Russ Anderson
     [not found]                                     ` <20130530221737.GA11105-sJ/iWh9BUns@public.gmane.org>
2013-05-30 22:21                                       ` Matthew Garrett
2013-05-30 22:21                                         ` Matthew Garrett
2013-05-30 22:28                                         ` Russ Anderson
2013-05-30 22:28                                           ` Russ Anderson
     [not found]                                           ` <20130530222836.GB11105-sJ/iWh9BUns@public.gmane.org>
2013-05-30 22:30                                             ` Jiri Kosina
2013-05-30 22:30                                               ` Jiri Kosina
     [not found]                                               ` <alpine.LNX.2.00.1305310029560.30576-ztGlSCb7Y1iN3ZZ/Hiejyg@public.gmane.org>
2013-05-31  2:17                                                 ` Russ Anderson
2013-05-31  2:17                                                   ` Russ Anderson
     [not found]                                                   ` <20130531021749.GA24287-sJ/iWh9BUns@public.gmane.org>
2013-05-31  3:28                                                     ` joeyli
2013-05-31  3:28                                                       ` joeyli
2013-05-30 22:32                                             ` Matthew Garrett
2013-05-30 22:32                                               ` Matthew Garrett
2013-05-31  2:54                                               ` Russ Anderson
2013-05-31  2:54                                                 ` Russ Anderson
2013-05-31 10:06                                                 ` Ingo Molnar
2013-05-30 22:25                                       ` Jiri Kosina
2013-05-30 22:25                                         ` Jiri Kosina
     [not found]                                         ` <alpine.LNX.2.00.1305310023020.30576-ztGlSCb7Y1iN3ZZ/Hiejyg@public.gmane.org>
2013-05-31 10:12                                           ` Ingo Molnar
2013-05-31 10:12                                             ` Ingo Molnar
     [not found]                                             ` <20130531101250.GD30394-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-05-31 11:06                                               ` Jiri Kosina
2013-05-31 11:06                                                 ` Jiri Kosina
     [not found]                                                 ` <alpine.LNX.2.00.1305311259520.30576-ztGlSCb7Y1iN3ZZ/Hiejyg@public.gmane.org>
2013-05-31 11:40                                                   ` Ingo Molnar
2013-05-31 11:40                                                     ` Ingo Molnar
     [not found]                                                     ` <20130531114037.GC7131-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-05-31 11:54                                                       ` Josh Boyer
2013-05-31 11:54                                                         ` Josh Boyer
2013-05-31 12:30                                                   ` Borislav Petkov
2013-05-31 12:30                                                     ` Borislav Petkov
     [not found]                                                     ` <20130531123015.GC17843-K5JNixvcfoxupOikMc4+xw@public.gmane.org>
2013-05-31 12:43                                                       ` Ingo Molnar
2013-05-31 12:43                                                         ` Ingo Molnar
     [not found]                                                         ` <20130531124356.GA8212-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-05-31 14:34                                                           ` Matthew Garrett
2013-05-31 14:34                                                             ` Matthew Garrett
     [not found]                                                             ` <20130531143425.GA5850-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2013-05-31 14:42                                                               ` James Bottomley
2013-05-31 14:42                                                                 ` James Bottomley
     [not found]                                                                 ` <1370011357.1913.15.camel-sFMDBYUN5F8GjUHQrlYNx2Wm91YjaHnnhRte9Li2A+AAvxtiuMwx3w@public.gmane.org>
2013-05-31 14:45                                                                   ` H. Peter Anvin
2013-05-31 14:45                                                                     ` H. Peter Anvin
2013-05-31 14:48                                                                   ` Matthew Garrett
2013-05-31 14:48                                                                     ` Matthew Garrett
2013-05-31 15:43                                                                     ` Russ Anderson
     [not found]                                                                       ` <20130531154348.GA17145-sJ/iWh9BUns@public.gmane.org>
2013-05-31 16:28                                                                         ` Matthew Garrett
2013-05-31 16:28                                                                           ` Matthew Garrett
     [not found]                                                                           ` <20130531162815.GA8082-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2013-05-31 17:35                                                                             ` James Bottomley
2013-05-31 17:35                                                                               ` James Bottomley
2013-05-31 22:57                                                                             ` Russ Anderson
2013-05-31 22:57                                                                               ` Russ Anderson
     [not found]                                                                               ` <20130531225730.GB14752-sJ/iWh9BUns@public.gmane.org>
2013-05-31 22:59                                                                                 ` H. Peter Anvin
2013-05-31 22:59                                                                                   ` H. Peter Anvin
2013-05-31 23:30                                                                                 ` Jiri Kosina
2013-05-31 23:30                                                                                   ` Jiri Kosina
2013-06-01  0:03                                                                                 ` Matthew Garrett [this message]
2013-06-01  0:03                                                                                   ` Matthew Garrett
     [not found]                                                                                   ` <20130601000311.GA15126-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2013-06-01  4:20                                                                                     ` Russ Anderson
2013-06-01  4:20                                                                                       ` Russ Anderson
     [not found]                                                                                       ` <20130601042058.GB15199-sJ/iWh9BUns@public.gmane.org>
2013-06-01  4:41                                                                                         ` Matthew Garrett
2013-06-01  4:41                                                                                           ` Matthew Garrett
2013-06-01 11:01                                                               ` Linus Torvalds
2013-06-01 11:01                                                                 ` Linus Torvalds
     [not found]                                                                 ` <alpine.LFD.2.03.1306011956350.9068-OR3hLWCBCApQetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
2013-06-01 14:40                                                                   ` Matthew Garrett
2013-06-01 14:40                                                                     ` Matthew Garrett
2013-05-30  2:38                           ` joeyli
2013-05-30  2:38                             ` joeyli
2013-05-23 22:23       ` Russ Anderson
2013-05-23 22:23         ` Russ Anderson
     [not found]         ` <20130523222321.GB31880-sJ/iWh9BUns@public.gmane.org>
2013-05-24  7:45           ` Matt Fleming
2013-05-24  7:45             ` Matt Fleming
     [not found]             ` <20130524074544.GM14575-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org>
2013-05-29 20:16               ` Russ Anderson
2013-05-29 20:16                 ` Russ Anderson
     [not found]                 ` <20130529201616.GB28027-sJ/iWh9BUns@public.gmane.org>
2013-05-31 14:41                   ` H. Peter Anvin
2013-05-31 14:41                     ` H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130601000311.GA15126@srcf.ucam.org \
    --to=mjg59-1xo5oi07kqx4cg9nei1l7q@public.gmane.org \
    --cc=James.Bottomley-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org \
    --cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=bp-Gina5bIWoIWzQB+pC5nmwQ@public.gmane.org \
    --cc=hpa-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
    --cc=jkosina-AlSwsSmVLrQ@public.gmane.org \
    --cc=jlee-IBi9RG/b67k@public.gmane.org \
    --cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=matt-HNK1S37rvNbeXh+fF434Mdi2O/JbrIOy@public.gmane.org \
    --cc=matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=mingo-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=rja-sJ/iWh9BUns@public.gmane.org \
    --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
    --cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
    --cc=x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.