Skip to content

Conversation

@fl64
Copy link
Member

@fl64 fl64 commented Jan 25, 2026

Description

Fix VMs with EFIWithSecureBoot bootloader failing to start when configured with more than 12 vCPUs.

  • Enable persistent NVRAM for SecureBoot VMs
  • Increase EDK2 limits to support up to 128 vCPUs

Why do we need it, and what problem does it solve?

VMs with SecureBoot were stuck in an infinite reboot loop or showing black screen when using more than ~12 cores.

What is the expected result?

VMs with bootloader: EFIWithSecureBoot boot successfully with any number of cores (up to 128).

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: core
type: fix
summary: fix VMs with `EFIWithSecureBoot` bootloader failing to start when configured with more than 12 vCPUs.

Signed-off-by: Pavel Tishkov <[email protected]>
fl64 added 6 commits January 25, 2026 21:57
Signed-off-by: Pavel Tishkov <[email protected]>
Signed-off-by: Pavel Tishkov <[email protected]>
Signed-off-by: Pavel Tishkov <[email protected]>
Signed-off-by: Pavel Tishkov <[email protected]>
Signed-off-by: Pavel Tishkov <[email protected]>
Signed-off-by: Pavel Tishkov <[email protected]>
@fl64 fl64 changed the title fix(core): fix ovmf sb flags fix(core): fix VMs with EFIWithSecureBoot bootloader failing to start when configured with more than 12 vCPUs Jan 26, 2026
@fl64 fl64 added this to the v1.5.0 milestone Jan 26, 2026
@fl64 fl64 marked this pull request as ready for review January 26, 2026 12:51
@fl64 fl64 added the e2e/run Run e2e test on cluster of PR author label Jan 27, 2026
@deckhouse-BOaTswain
Copy link
Contributor

deckhouse-BOaTswain commented Jan 27, 2026

Workflow has started.
Follow the progress here: Workflow Run

The target step completed with status: failure.

@deckhouse-BOaTswain deckhouse-BOaTswain removed the e2e/run Run e2e test on cluster of PR author label Jan 27, 2026
Comment on lines 103 to 106
# CC_FLAGS="${CC_FLAGS} -b DEBUG" # TEMP: enable debug to see OVMF errors in serial

CC_FLAGS="${CC_FLAGS} --cmd-len=65536"
CC_FLAGS="${CC_FLAGS} -D DEBUG_ON_SERIAL_PORT=TRUE" # TEMP: output debug to serial console
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-D DEBUG_ON_SERIAL_PORT=TRUE — is it work without -b DEBUG?

Also, these 2 new settings are commented with "TEMP" — do we need them in main?

Copy link
Member Author

@fl64 fl64 Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left it on purpose so that, if necessary, it could be quickly build with a debug build. But if such points are obvious, then you can remove them.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is not obvious what to change to build with debug output =)

Copy link
Member

@diafour diafour Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to enable debug build with -b DEBUG to enable output on serial port, or -D DEBUG_ON_SERIAL_PORT is enough and there is a runtime option for more verbose output for RELEASE build? Or we need rebuild ovmf to get verbose log on serial port? (I remember that ovmf rebuild may take ~40min).

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just put DEBUG instead of RELEASE )

Signed-off-by: Pavel Tishkov <[email protected]>
@fl64 fl64 requested a review from diafour January 29, 2026 09:33
@fl64 fl64 added e2e/user/universal-itengineer e2e/run Run e2e test on cluster of PR author labels Jan 29, 2026
@deckhouse-BOaTswain deckhouse-BOaTswain removed the e2e/run Run e2e test on cluster of PR author label Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants