public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Jordan Justen <jordan.l.justen@intel.com>
To: Laszlo Ersek <lersek@redhat.com>,
	edk2-devel-01 <edk2-devel@lists.01.org>
Cc: Gary Ching-Pang Lin <glin@suse.com>
Subject: Re: [PATCH 2/3] OvmfPkg: introduce FD_SIZE_4MB (mainly) for Windows HCK
Date: Sun, 30 Apr 2017 14:16:16 -0700	[thread overview]
Message-ID: <149358697668.23065.6363402854761002239@jljusten-skl> (raw)
In-Reply-To: <030f8312-35ce-5c86-205c-2ee6c0b5ab8b@redhat.com>

On 2017-04-30 07:42:36, Laszlo Ersek wrote:
> On 04/30/17 02:48, Jordan Justen wrote:
> > 
> > I tested a 2MB RELEASE build of OvmfIa32X64 on GCC 4.9 with:
> 
> RELEASE builds of virtual UEFI firmware are unsupportable in an
> enterprise distribution. On tenths of occasions I've been able to
> analyze OVMF and ArmVirtQemu error reports from:
> - failed ASSERTs, and
> - DEBUG messages
> that would have been all lost in a RELEASE build.
> 
> QEMU (even upstream QEMU) rejects being built with NDEBUG; they consider
> the asserts so important. For example, in "hw/virtio/virtio.c":

We're discussing space issues, and a RELEASE build is considered
unusable? I don't know what that says about the qemu project, but it
certainly is not how EDK II was designed.

Nevertheless, I agree that it is very nice to be able to enable DEBUG
mode with the standard features included. Regarding 'standard
features', see my IP6/HTTP/TLS question below.

> > 
> > I also tested a 2MB RELEASE build of OvmfIa32X64 on GCC 4.9 with:
> > 
> >  * SECURE_BOOT_ENABLE=1
> >  * NETWORK_IP6_ENABLE=1
> >  * HTTP_BOOT_ENABLE=1
> >  * SMM_REQUIRE=1
> >  * TLS_ENABLE=1
> > 
> > I don't think we consider those network items as standard
> > requirements, yet there was still ~373k available. In order to bump
> > the variables to 120k, we need to use 2 * (120 - 56) => 128k.
> 
> Do I understand correctly that you suggest adding 64K to the live area,
> 64K to the spare area, and decreasing FVMAIN_COMPACT by 128k?
> 
> I think that's a step in the wrong direction.

It is starting to look less and less like 1MB is a feasible size for
OVMF. Maybe going forward we'll drop 1MB, and support 2/4MB. If that
happens, then it would be nice if the 2MB image covered the known
requirements.

> $ build \
>   -b DEBUG \
>   -a IA32 -a X64 \
>   -p OvmfPkg/OvmfPkgIa32X64.dsc \
>   -t GCC48 \
>   -D SMM_REQUIRE \
>   -D SECURE_BOOT_ENABLE \
>   -D HTTP_BOOT_ENABLE \
>   -D NETWORK_IP6_ENABLE \
>   -D TLS_ENABLE

Do you enable the last 3 in your production builds? I didn't think it
was the case, but it would change things...

> > 
> > Regarding how to 'upgrade' a system from using the smaller storage
> > size, I don't think there are any good answers. (Which also applies to
> > the 4MB case.)
> 
> I agree, on both points.

How would you plan to support VMs with the old 2MB layout?

I guess it could be easy enough to develop a python script to resize
the old layout to the new layout, but I'm not sure if it is possible
for libvirt to handle the need to launch such an upgrade script..

> Which is why I think it's time to make the big jump now, and be safe for
> the next several years.

Why not just go for 8 MB, and give Microsoft, say 1 MB for variables?
That should be 'future proof', right? :)

The reality is that there's no good way to tell what Microsoft (or Red
Hat) may require in the future. Right now we know that Microsoft
appears to be saying 120k is good for at least the near term.

I'm not against us defining a 4MB image size, but it is frustrating to
be pushed into it by a single test. You did give an example of a crash
dump using 10k of variable space, but even then it is not clear to me
that 56k is insufficient in normal usage.

Regarding your suggested 4MB layout, it seems reasonable. My only
concern is, if the minimum flash size is bumped. What are the chances
that 248k will cover it? Unfortunately (or fortunately), no one I've
asked seem to know of any plans for the requirement to increase beyond
120k.

-Jordan


  reply	other threads:[~2017-04-30 21:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-29 20:14 [PATCH 0/3] OvmfPkg: add FD_SIZE_4MB for Windows HCK SB tests, and for future proofing Laszlo Ersek
2017-04-29 20:14 ` [PATCH 1/3] OvmfPkg/OvmfPkg.fdf.inc: extract VARS_LIVE_SIZE and VARS_SPARE_SIZE macros Laszlo Ersek
2017-04-29 20:14 ` [PATCH 2/3] OvmfPkg: introduce FD_SIZE_4MB (mainly) for Windows HCK Laszlo Ersek
2017-04-30  0:48   ` Jordan Justen
2017-04-30 14:42     ` Laszlo Ersek
2017-04-30 21:16       ` Jordan Justen [this message]
2017-05-01 10:51         ` Laszlo Ersek
2017-05-01 17:15           ` Jordan Justen
2017-05-01 17:23           ` Jordan Justen
2017-05-01 18:40             ` Laszlo Ersek
2017-05-01 19:20               ` Jordan Justen
2017-05-01 23:07                 ` Laszlo Ersek
2017-05-01 23:38                   ` Jordan Justen
2017-05-02 14:39                     ` Laszlo Ersek
2017-05-02 18:22                       ` Jordan Justen
2017-05-02 19:31                         ` Laszlo Ersek
2017-05-02 21:45                           ` Jordan Justen
2017-05-03 13:46                             ` Laszlo Ersek
2017-05-01  0:06     ` Laszlo Ersek
2017-04-29 20:15 ` [PATCH 3/3] OvmfPkg: raise max variable size (auth & non-auth) to 33KB for FD_SIZE_4MB Laszlo Ersek

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-list 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=149358697668.23065.6363402854761002239@jljusten-skl \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox