From f690b0aad0ef5900d9b9648a5532b8b7ce64c518 Mon Sep 17 00:00:00 2001 From: Archana Shinde Date: Thu, 14 Jul 2022 19:21:47 -0700 Subject: [PATCH] qemu: Add liburing to qemu build io_uring is a Linux API for asynchronous I/O introduced in qemu 5.0. It is designed to better performance than older aio API. We could leverage this in order to get better storage performance. We should be adding liburing-dev to qemu build to leverage this feature. However liburing-dev package is not available in ubuntu 20.04, it is avaiable in 22.04. Upgrading the ubuntu version in the dockerfile to 22.04 is causing issues in the static qemu build related to libpmem. So instead we are building liburing from source until those build issues are solved. Fixes: #4645 Signed-off-by: Archana Shinde --- tools/packaging/static-build/qemu/Dockerfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/packaging/static-build/qemu/Dockerfile b/tools/packaging/static-build/qemu/Dockerfile index 61cc6ce951..6808840217 100644 --- a/tools/packaging/static-build/qemu/Dockerfile +++ b/tools/packaging/static-build/qemu/Dockerfile @@ -11,6 +11,7 @@ WORKDIR /root/qemu # This is required to keep build dependencies with security fixes. ARG CACHE_TIMEOUT RUN echo "$CACHE_TIMEOUT" +ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get upgrade -y && \ apt-get --no-install-recommends install -y \ @@ -59,6 +60,12 @@ ARG BUILD_SUFFIX ARG QEMU_DESTDIR ARG QEMU_TARBALL +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN git clone https://github.com/axboe/liburing/ ~/liburing && \ + cd ~/liburing && \ + git checkout tags/liburing-2.1 && \ + make && make install && ldconfig + COPY scripts/configure-hypervisor.sh /root/configure-hypervisor.sh COPY qemu /root/kata_qemu COPY scripts/apply_patches.sh /root/apply_patches.sh @@ -66,7 +73,6 @@ COPY scripts/patch_qemu.sh /root/patch_qemu.sh COPY static-build/scripts/qemu-build-post.sh /root/static-build/scripts/qemu-build-post.sh COPY static-build/qemu.blacklist /root/static-build/qemu.blacklist -SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN git clone --depth=1 "${QEMU_REPO}" qemu && \ cd qemu && \ git fetch --depth=1 origin "${QEMU_VERSION}" && git checkout FETCH_HEAD && \