fix(bundle): Take the x86_64 kernel that boots on every vCPU - #15
Merged
Merged
Conversation
The amd64 kernel in hull-assets 0.1.6 leaves X86_X2APIC unset. cloud-hypervisor lists each vCPU as an x2APIC entry in the MADT, so that kernel ignores them, and an amd64 guest runs on one CPU whatever `brig run --cpus` asks for. hull-assets 0.1.7 builds X86_X2APIC in: - amd64: bzImage f00bcf35 (was a423bdb9), the same size - arm64: unchanged, Image e8bf35e4 Signed-off-by: Anastassios Nanos <ananos@nofire.ai>
ananos
marked this pull request as ready for review
September 30, 2026 09:23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The amd64 bundles from hull-assets 0.1.6 boot every guest on one CPU. That kernel leaves
X86_X2APICunset. cloud-hypervisor lists each vCPU as an x2APIC entry in the MADT, and the kernel ignores them:So
brig run --cpus 3starts cloud-hypervisor withboot=3, and the guest still reports one CPU. v0.1.0-rc12 ships that kernel. arm64 takes its CPUs from the device tree and is not affected.This patch moves the bundle to hull-assets 0.1.7, which builds
X86_X2APICin.Changes
scripts/build-bundle.sh:ASSETS_VERSIONmoves from 0.1.6 to 0.1.7.a423bdb9f00bcf35, the same sizee8bf35e4The initrd is the bundle's own and does not change.
Testing
The 0.1.7
linux-amd64artifact verifies against thebuild-assets.yml@refs/heads/mainidentity. Its kernel config differs from 0.1.6's inX86_X2APICalone, plus four symbols that depend on it and show as unset.The two kernels under the rc12 rootless bundle on an x86_64 KVM host, with
brig run --cpus 3:nproccpu/online/proc/cpuinfoa423bdb9)boot=3f00bcf35)boot=3CI builds the amd64 and arm64 bundles from 0.1.7.
🤖 Generated with Claude Code