From: "Ard Biesheuvel" <ard.biesheuvel@arm.com>
To: Leif Lindholm <leif@nuviainc.com>
Cc: devel@edk2.groups.io, Pete Batard <pete@akeo.ie>,
Andrei Warkentin <awarkentin@vmware.com>,
Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: Re: [PATCH] ArmPkg/PlatformBootManagerLib: regenerate boot options on boot failure
Date: Wed, 17 Jun 2020 14:59:45 +0200 [thread overview]
Message-ID: <fce32bcd-4e29-e192-482a-fe2f66f02c26@arm.com> (raw)
In-Reply-To: <20200617124026.GO6739@vanye>
On 6/17/20 2:40 PM, Leif Lindholm wrote:
> On Wed, Jun 17, 2020 at 14:28:04 +0200, Ard Biesheuvel wrote:
>> On 6/17/20 2:16 PM, Leif Lindholm wrote:
>>> On Wed, Jun 17, 2020 at 13:32:36 +0200, Ard Biesheuvel wrote:
>>>> On 6/17/20 1:12 PM, Leif Lindholm wrote:
>>>>> On Tue, Jun 16, 2020 at 19:48:34 +0200, Ard Biesheuvel wrote:
>>>>>> One of the side effects of the recent changes to PlatformBootManagerLib
>>>>>> changes to avoid connecting all devices on every boot is that we no
>>>>>> longer default to network boot on a virgin boot, but end up in the
>>>>>> UiApp menu. At this point, the autogenerated boot options that we used
>>>>>> to rely on will be instantiated too,
>>>>>
>>>>> The passive voice is confusing me a bit here - who does the updating,
>>>>> and when specifically?
>>>>>
>>>>
>>>> Originally, the ArmPkg PlatformBmLib would always refresh all boot options,
>>>> but now, only the UiApp does that upon entry, at which point your sitting in
>>>> the menu idly, and so automated network boot no longer works.
>>>
>>> Sure. But the message should contain some description of agency.
>>>
>>> Something like:
>>> "On entry, the UiApp instantiates the autogenerated boot options that
>>> we used to rely on - but it does not consume them. This breaks the
>>> unattended..."
>>
>> OK
>>
>>> I assume the UiApp only ever *adds* entries, which is why checking
>>> number of entries is sufficient?
>>>
>>
>> It only manages entries that it instantiated itself, but it may also remove
>> entries if the underlying hardware has disappeared.
>
> Hmm, that's a bit trickier then. I mean, it's unlikely, but I'm sure
> there's situations that could happen.
> Would we run the risk of getting bug reports like "system fails to
> boot from Ethernet when inifiniband switch powered off"? Or if some
> virtual devices presented by a BMC appear/disappear?
>
If the boot entries are not refreshed, you will retain the old ones. So
the only way this could lead to a boot failure is when you rely on
automatically generated boot entries to device that disappear and
reappear in a different place, e.g., move a Ethernet PCIe card to a
different slot. Note that USB devices plugged into a different port will
still work fine, though, as they rely on the removable boot path in this
case, which will be attempted anyway before doing the UnableToBoot().
Note that the failure mode here is being dropped into the menu, where
before you were always dropped into the Shell. The case we are trying to
address here is zero intervention network boot after putting the device
into circulation, and that should work correctly with this change: if
the network boot path did not exist before, it will be added, in which
case the number of boot options will increase.
next prev parent reply other threads:[~2020-06-17 12:59 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-16 17:48 [PATCH] ArmPkg/PlatformBootManagerLib: regenerate boot options on boot failure Ard Biesheuvel
2020-06-16 21:40 ` Samer El-Haj-Mahmoud
2020-06-17 11:12 ` Leif Lindholm
2020-06-17 11:32 ` Ard Biesheuvel
2020-06-17 12:16 ` Leif Lindholm
2020-06-17 12:28 ` Ard Biesheuvel
2020-06-17 12:40 ` Leif Lindholm
2020-06-17 12:59 ` Ard Biesheuvel [this message]
2020-06-17 14:35 ` Leif Lindholm
2020-06-17 18:30 ` Ard Biesheuvel
2020-06-17 13:44 ` [edk2-devel] " Laszlo Ersek
2020-06-17 16:21 ` Andrei Warkentin
2020-06-17 18:18 ` Ard Biesheuvel
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=fce32bcd-4e29-e192-482a-fe2f66f02c26@arm.com \
--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