On 3/2/23 09:32, Christian Ehrhardt wrote:
> good ~instant
> [08:14:37.267336194] Select Item: 0xE
> [08:14:37.268346995] [Bds]RegisterKeyNotify: 000C/0000 80000000/00 Success
>
> bad ~8s
> [08:15:43.561054490] Select Item: 0xE
> [08:15:51.291039364] [Bds]RegisterKeyNotify: 000C/0000 80000000/00 Success
Yes, this is consistent with my hypothesis.
PlatformBootManagerBeforeConsole()
GetFrontPageTimeoutFromQemu()
QemuFwCfgSelectItem (QemuFwCfgItemBootMenu)
// "Select Item: 0xE"
gRT->SetVariable()
PlatformRegisterOptionsAndKeys()
EfiBootManagerAddKeyOptionVariable()
gRT->SetVariable()
BmProcessKeyOption()
BmRegisterHotkeyNotify()
// "[Bds]RegisterKeyNotify: 000C/0000 80000000/00 Success"
IOW, there are at least two gRT->SetVariable() calls in OVMF (with
EFI_VARIABLE_NON_VOLATILE attribute) between the two adjacent log lines
you quoted.
The other functions listed in the call tree may contain further
gRT->SetVariable() calls.
Laszlo