Skip to content

Commit d6e3248

Browse files
committed
ci: build debug kernels
Enabling ftrace in our kernels changed the performance of several tests, so it was reverted. Make a new set of kernels that will not be used for performance tests. While doing this, simplify our guest kernel config customization that relied on patches and use file concatenation instead. Turns out `make olddefconfig` produces the same result and we avoid the complexity of dealing with patches. Signed-off-by: Pablo Barbáchano <[email protected]>
1 parent ad9ec90 commit d6e3248

10 files changed

+59
-333
lines changed

resources/guest_configs/ci.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
CONFIG_IKCONFIG=y
2+
CONFIG_IKCONFIG_PROC=y
3+
CONFIG_MSDOS_PARTITION=y
4+
# aarch64 only TBD split into a separate file
5+
CONFIG_DEVMEM=y
6+
# CONFIG_ARM64_ERRATUM_3194386 is not set

resources/guest_configs/ftrace.config

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
CONFIG_FTRACE=y
2+
CONFIG_FUNCTION_TRACER=y
3+
CONFIG_FUNCTION_GRAPH_TRACER=y
4+
CONFIG_IRQSOFF_TRACER=y
5+
CONFIG_PREEMPT_TRACER=y
6+
CONFIG_SCHED_TRACER=y
7+
CONFIG_STACK_TRACER=y
8+
CONFIG_BLK_DEV_IO_TRACE=y
9+
CONFIG_FUNCTION_PROFILER=y
10+
CONFIG_FTRACE_MCOUNT_RECORD=y
11+
CONFIG_FTRACE_SYSCALLS=y

resources/guest_configs/patches/0001-fix-Adjust-config-options-for-what-is-needed-by-our-.patch

Lines changed: 0 additions & 98 deletions
This file was deleted.

resources/guest_configs/patches/0002-ci-adjust-6.1-guest-kernel-configs-for-our-CI.patch

Lines changed: 0 additions & 76 deletions
This file was deleted.

resources/guest_configs/patches/0003-enable-ftrace.patch

Lines changed: 0 additions & 115 deletions
This file was deleted.

resources/guest_configs/patches/0004-disable-CONFIG_ARM64_ERRATUM_3194386-for-aarch64.patch

Lines changed: 0 additions & 24 deletions
This file was deleted.

resources/rebuild.sh

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,6 @@ function clone_amazon_linux_repo {
134134
[ -d linux ] || git clone https://github.com/amazonlinux/linux linux
135135
}
136136

137-
function apply_kernel_patches_for_ci {
138-
for p in $PWD/guest_configs/patches/* ; do
139-
patch -p2 < $p
140-
done
141-
}
142-
143137
# prints the git tag corresponding to the newest and best matching the provided kernel version $1
144138
# this means that if a microvm kernel exists, the tag returned will be of the form
145139
#
@@ -179,8 +173,9 @@ function build_al_kernel {
179173
echo "FATAL: Unsupported architecture!"
180174
exit 1
181175
fi
182-
cp "$KERNEL_CFG" .config
183-
176+
# Concatenate all config files into one. olddefconfig will then resolve
177+
# as needed. Later values override earlier ones.
178+
cat "$@" >.config
184179
make olddefconfig
185180
make -j $(nproc) $target
186181
LATEST_VERSION=$(cat include/config/kernel.release)
@@ -223,22 +218,24 @@ function build_al_kernels {
223218

224219
clone_amazon_linux_repo
225220

226-
# Apply kernel patches on top of AL configuration
227-
apply_kernel_patches_for_ci
221+
CI_CONFIG="$PWD/guest_configs/ci.config"
222+
FTRACE_CONFIG="$PWD/guest_configs/ftrace.config"
228223

229224
if [[ "$KERNEL_VERSION" == @(all|5.10) ]]; then
230-
build_al_kernel $PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10.config
225+
build_al_kernel $PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10.config "$CI_CONFIG"
231226
fi
232227
if [[ $ARCH == "x86_64" && "$KERNEL_VERSION" == @(all|5.10-no-acpi) ]]; then
233-
build_al_kernel $PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10-no-acpi.config
228+
build_al_kernel $PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10-no-acpi.config "$CI_CONFIG"
234229
fi
235230
if [[ "$KERNEL_VERSION" == @(all|6.1) ]]; then
236-
build_al_kernel $PWD/guest_configs/microvm-kernel-ci-$ARCH-6.1.config 5.10
231+
build_al_kernel $PWD/guest_configs/microvm-kernel-ci-$ARCH-6.1.config "$CI_CONFIG"
237232
fi
238233

239-
# Undo kernel patches on top of AL configuration
240-
git restore $PWD/guest_configs
241-
rm -rf $PWD/guest_configs/*.orig
234+
# Build debug kernels
235+
OUTPUT_DIR=$OUTPUT_DIR/debug
236+
mkdir -pv $OUTPUT_DIR
237+
build_al_kernel "$PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10.config" "$CI_CONFIG" "$FTRACE_CONFIG"
238+
build_al_kernel "$PWD/guest_configs/microvm-kernel-ci-$ARCH-6.1.config" "$CI_CONFIG" "$FTRACE_CONFIG"
242239
}
243240

244241
function print_help {

0 commit comments

Comments
 (0)