diff --git a/tools/packaging/kernel/build-kernel.sh b/tools/packaging/kernel/build-kernel.sh index bb682e7214..f844433cfd 100755 --- a/tools/packaging/kernel/build-kernel.sh +++ b/tools/packaging/kernel/build-kernel.sh @@ -538,6 +538,16 @@ main() { [ -z "${subcmd}" ] && usage 1 + if [[ ${build_type} == "experimental" ]] && [[ ${hypervisor_target} == "dragonball" ]]; then + build_type="dragonball-experimental" + if [ -n "$kernel_version" ]; then + kernel_major_version=$(get_major_kernel_version "${kernel_version}") + if [[ ${kernel_major_version} != "5.10" ]]; then + info "dragonball-experimental kernel patches are only tested on 5.10.x kernel now, other kernel version may cause confliction" + fi + fi + fi + # If not kernel version take it from versions.yaml if [ -z "$kernel_version" ]; then if [[ ${build_type} == "experimental" ]]; then @@ -553,6 +563,8 @@ main() { kernel_version=$(get_from_kata_deps "assets.kernel-experimental.tag") ;; esac + elif [[ ${build_type} == "dragonball-experimental" ]]; then + kernel_version=$(get_from_kata_deps "assets.dragonball-kernel-experimental.version") elif [[ "${conf_guest}" != "" ]]; then #If specifying a tag for kernel_version, must be formatted version-like to avoid unintended parsing issues kernel_version=$(get_from_kata_deps "assets.kernel.${conf_guest}.version" 2>/dev/null || true) diff --git a/tools/packaging/kernel/configs/fragments/build-type/dragonball-experimental/upcall.conf b/tools/packaging/kernel/configs/fragments/build-type/dragonball-experimental/upcall.conf new file mode 100644 index 0000000000..75596e687a --- /dev/null +++ b/tools/packaging/kernel/configs/fragments/build-type/dragonball-experimental/upcall.conf @@ -0,0 +1,6 @@ +# Add support for upcall and device manager service +CONFIG_DRAGONBALL_DRIVERS=y +CONFIG_DRAGONBALL_UPCALL_SRV=y +CONFIG_DRAGONBALL_DEVICE_MANAGER=y +CONFIG_DRAGONBALL_HOTPLUG_VIRTIO_MMIO=y +CONFIG_DRAGONBALL_HOTPLUG_CPU=y diff --git a/versions.yaml b/versions.yaml index 28da079d6e..8c0b2bf6d3 100644 --- a/versions.yaml +++ b/versions.yaml @@ -182,6 +182,11 @@ assets: url: "https://cdn.kernel.org/pub/linux/kernel/v5.x/" version: "v5.15.7" + dragonball-kernel-experimental: + description: "Linux kernel with Dragonball VMM optimizations like upcall" + url: "https://cdn.kernel.org/pub/linux/kernel/v5.x/" + version: "v5.10.25" + externals: description: "Third-party projects used by the system"