From 75bc05db3cf98bff4eea784e00897b27ae60a969 Mon Sep 17 00:00:00 2001 From: Gavin Inglis Date: Wed, 1 Jun 2022 00:38:39 +0000 Subject: [PATCH] update kernel configs, make kernel in integ test in upgrading to firecracker v1.1, we noticed some configuration options prompted for using when `make kernel`. These options are specific to kernel 4.14. Update KERNEL_FULL_VERSION regex to that used by firecracker v1.1.0 This PR also updates the integ test Docker image to use a freshly built kernel such that FUSE is enabled. Signed-off-by: Gavin Inglis --- Makefile | 6 +++--- tools/docker/Dockerfile.integ-test | 2 +- tools/kernel-configs/microvm-kernel-aarch64-4.14.config | 1 + tools/kernel-configs/microvm-kernel-x86_64-4.14.config | 7 +++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 334dfb151..0e2d3ef4e 100644 --- a/Makefile +++ b/Makefile @@ -57,9 +57,9 @@ $(error "Kernel version $(KERNEL_VERSION) is not supported. Supported versions a endif KERNEL_CONFIG=tools/kernel-configs/microvm-kernel-$(host_arch)-$(KERNEL_VERSION).config -# Copied from https://github.com/firecracker-microvm/firecracker/blob/v1.0.0/tools/devtool#L2015 +# Copied from https://github.com/firecracker-microvm/firecracker/blob/v1.1.0/tools/devtool#L2082 # This allows us to specify a kernel without the patch version, but still get the correct build path to reference the kernel binary -KERNEL_FULL_VERSION=$(shell cat "$(KERNEL_CONFIG)" | grep -Po "^\# Linux\/$(kernel_config_pattern) (([0-9]+.){2}[0-9]+)" | cut -d ' ' -f 3) +KERNEL_FULL_VERSION=$(shell cat "$(KERNEL_CONFIG)" | grep -Po "^\# Linux\/$(kernel_config_pattern) (([0-9]+.)[0-9]+)" | cut -d ' ' -f 3) KERNEL_BIN=$(FIRECRACKER_DIR)/build/kernel/linux-$(KERNEL_FULL_VERSION)/vmlinux-$(KERNEL_FULL_VERSION)-$(host_arch).bin RUNC_DIR=$(SUBMODULES)/runc @@ -190,7 +190,7 @@ test-images: test-images-stamp test-images-stamp: | image firecracker-containerd-test-image touch $@ -firecracker-containerd-test-image: all-in-docker firecracker runc test-cni-bins cni-bins default-vmlinux +firecracker-containerd-test-image: all-in-docker firecracker runc test-cni-bins cni-bins default-vmlinux kernel DOCKER_BUILDKIT=1 docker build \ --progress=plain \ --file tools/docker/Dockerfile.integ-test \ diff --git a/tools/docker/Dockerfile.integ-test b/tools/docker/Dockerfile.integ-test index 6e56f02c3..c9a7a966d 100644 --- a/tools/docker/Dockerfile.integ-test +++ b/tools/docker/Dockerfile.integ-test @@ -61,7 +61,7 @@ RUN --mount=type=bind,target=/src make -C /src \ install \ install-firecracker \ install-runc \ - install-default-vmlinux \ + install-kernel \ install-default-rootfs \ install-default-runc-jailer-config \ install-test-cni-bins \ diff --git a/tools/kernel-configs/microvm-kernel-aarch64-4.14.config b/tools/kernel-configs/microvm-kernel-aarch64-4.14.config index 6b8a7e3e3..3ee49ac6d 100644 --- a/tools/kernel-configs/microvm-kernel-aarch64-4.14.config +++ b/tools/kernel-configs/microvm-kernel-aarch64-4.14.config @@ -1123,6 +1123,7 @@ CONFIG_VIRTIO_BLK=y # CONFIG_ENCLOSURE_SERVICES is not set # CONFIG_SRAM is not set # CONFIG_C2PORT is not set +# CONFIG_R3964 is not set # # EEPROM support diff --git a/tools/kernel-configs/microvm-kernel-x86_64-4.14.config b/tools/kernel-configs/microvm-kernel-x86_64-4.14.config index 24fdd95a8..86838ccd7 100644 --- a/tools/kernel-configs/microvm-kernel-x86_64-4.14.config +++ b/tools/kernel-configs/microvm-kernel-x86_64-4.14.config @@ -1208,6 +1208,7 @@ CONFIG_VIRTIO_BLK=y # CONFIG_ENCLOSURE_SERVICES is not set # CONFIG_SRAM is not set # CONFIG_C2PORT is not set +# CONFIG_R3964 is not set # # EEPROM support @@ -2077,6 +2078,7 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_KMEMCHECK is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_VM is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y @@ -2225,8 +2227,8 @@ CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_ENTRY is not set # CONFIG_DEBUG_NMI_SELFTEST is not set # CONFIG_X86_DEBUG_FPU is not set -# CONFIG_UNWINDER_ORC is not set -CONFIG_UNWINDER_FRAME_POINTER=y +# CONFIG_ORC_UNWINDER is not set +CONFIG_FRAME_POINTER_UNWINDER=y # # Security options @@ -2394,6 +2396,7 @@ CONFIG_CRYPTO_AES_TI=y # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SALSA20_X86_64 is not set # CONFIG_CRYPTO_CHACHA20 is not set # CONFIG_CRYPTO_CHACHA20_X86_64 is not set # CONFIG_CRYPTO_SEED is not set