Repository navigation
Conversation
eda0c66 to
5703d82
Compare
|
^ force pushes have been commitlint fixes, bringing SRPM up to latest to match |
1120c6d to
e748a6a
Compare
|
^ force pushes extract out the shared custom kconfigs to a new package, |
e748a6a to
4544a11
Compare
|
^ fix |
4544a11 to
65430b0
Compare
|
^ force push fixes |
|
Hello friends! I'm curious if you'd consider enabling |
|
On second thought, I don't think I need to build |
65430b0 to
6e7c4ac
Compare
|
^ force push:
|
6e7c4ac to
5f99013
Compare
|
^ force push installs kernel as |
5ab2509 to
c1ce6d4
Compare
|
^ build erofs zstd decompression frontend into guest config |
c1ce6d4 to
34ebd4d
Compare
|
^ force push
|
34ebd4d to
1cbdebe
Compare
|
^ force push has some fixes to further trim the guest
|
1cbdebe to
ba5c3b8
Compare
|
^ moved a few built-ins back to loadable modules for the microvm:
|
ba5c3b8 to
c7c6af5
Compare
|
^ force push addresses @KCSesh 's comments (except for one, I have one more force push coming 🔜 ) https://github.com/bottlerocket-os/bottlerocket-kernel-kit/compare/ba5c3b8006eac33ad14452aeeb9911b7c7c4607c..c7c6af5f7ab0c95dc8a688d30abde52a12d7b370 |
c7c6af5 to
ddd2f73
Compare
|
^ force push ships |
Introduce a kernel-6.18-shared-configs package that ships the base
Bottlerocket kernel configuration fragments (config-bottlerocket and
its per-architecture variants) and installs them into the build
sysroot.
Every 6.18-based kernel can then consume these fragments at build time
via a BuildRequires rather than carrying its own copy. Convert
kernel-6.18 to pull them from the shared package: drop its local
config-bottlerocket{,-x86_64,-aarch64} sources, add the build
dependency, and merge the fragments from %{kernel_configdir} in %prep.
Signed-off-by: Gavin Inglis <giinglis@amazon.com>
latest-kernel-full-config.sh reconstructed each package directory from the SRPM's majorminor version (6.18.51 -> 6.18), so two packages that share a majorminor (kernel-6.18 and kernel-6.18-microvm) could not be told apart and the microvm flavor never got its own configuration generated. Pass the actual package directory through merge/validate instead. Signed-off-by: Gavin Inglis <giinglis@amazon.com>
ddd2f73 to
425eaa2
Compare
|
^ latest force push
and addressed my 2 comments above |
add a new flavor of the 6.18 kernel to support booting microvms such as Firecracker. This flavor reuses the same source, patches and Bottlerocket config fragments as kernel-6.18, adds config-microvm to build the virtio transport, network and vsock drivers in, and ships bzImage or vmlinuz.efi depending on architecture Include a new config-microvm for setting configuration options specific to guests so a microvm guest can boot a minimal virtio device model. Signed-off-by: Gavin Inglis <giinglis@amazon.com>
425eaa2 to
8c10702
Compare
|
^ small doc comment fixup |
Issue
#606
Description of changes:
Add
kernel-6.18-microvm, a guest kernel for microVMs built from the same SRPM and patch set as kernel-6.18, with a smaller static footprint.The biggest change comes in the config overlay (
packages/kernel-6.18-microvm/config-microvm, merged last, after the shared base fragments):VIRTIO_MMIO,VIRTIO_BALLOON,VIRTIO_NET, guest-side vsock (VIRTIO_VSOCKETS),NSM.virtio-blk,dm-verity,erofsand the serial console are already=yin the shared base. aarch64 addsRTC_DRV_PL031=yfor Firecracker's PL031 wall clock.MAXSMPoff /NR_CPUS=256,LOG_BUF_SHIFT=17,NVMe =m,DMA_CMAoff,FB/fbcon/DRM_FBDEV_EMULATIONoff,DEBUG_INFO_BTFoff (DEBUG_INFO_NONE=y, no vmlinux.h generated),IKCONFIGoff (/boot/configstill shipped),FTRACE/KPROBESoff,PROC_KCOREoff. No CPU microcode is embeddedThis results in the tradeoff - with
FTRACEandBTFoff this kernel means no in-guestftrace,kprobes/uprobes, tracepoint-based eBPF, BPF LSM, orsched_ext.This PR also extracts out the shared custom kconfigs to a new package,
kernel-6.18-shared-configs, for sharing betweenkernel-6.18andkernel-6.18-microvmlatest-kernel-full-config.shis now package-directory aware: it mergesconfig-microvmwhen present, skips the microcode fragment for*-microvm, and skips source fetch for packages with nourl =in Cargo.toml. The fourconfig-full-bottlerocket-*-on-*files for the new package are generated by it.For an annotated diff of this new
kernel-6.18-microvmvs.kernel-6.18, see https://gist.github.com/ginglis13/39595b1ae57976546a9f5d221f8d0753Testing done:
See full details of a boot test on x86 and arm via firecracker in this gist: https://gist.github.com/ginglis13/a762a343b0d29f3d3c9bdf52a579ca76
Terms of contribution:
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.