integ/virt/qemu/debian/patches/0004-STX-qemu-add-enable-dpdk-runtime-flag.patch
Rafael Falcao 75a234904f Debian: Add build structure for virt/qemu
This change adds the necessary files for the qemu package to
be built for Debian. This review follows the same approach
used on the virt/libvirt [1].

The base version selected comes from the Debian archive [2] since the
salsa-debian [3] version was not fully compatible with stx build tools.
The full upstream build was quite long (time) and big (size) so we
patched the Debian files with debian_patches to drop unnecessary
packages, that is, packages that starlingx does not need.

The patches dir will contain source code patches required for
stx-qemu, that is, the code that was earlier added on top of 3.0.0
qemu release to add StarlingX required functionalities.
The work done on this change is simply porting the code changes,
copying it and doing the minimum required updates when it is needed.

The list of commits follow, where the "-" character indicates that the
commit was dropped now that we are based on 5.2:

 d3400d STX: virtio-serial: don't touch virtqueue if vm is stopped
 71dc08 STX: Modify live migration auto-converge threshold
 9be81b STX: Suspend/Resume for VMs with PCIPT+Virtio
 876a3c STX: realtime uses mlock instead of mlockall
 007444 STX: qemu dpdk custom config
 3f6344 STX: add libdl
 dbda73 STX: qemu: add compile define for CONFIG_DPDK
 626bfd STX: qemu: add -enable-dpdk runtime flag
 79ea26 STX: qemu dpdk changes for openvswitch dpdk
 9c83db STX: migration thread affinity and priority qmp
 e7fbe5 STX: Add support statement to -help output
-48de9c STX: Changes for running on CentOS
-32b6f0 Upstream: Workaround: make sure vdev->vq[i].inuse never goes
        below 0
-246b26 virtio: Return true from virtio_queue_empty if broken

[1] https://review.opendev.org/c/starlingx/integ/+/863561
[2] https://snapshot.debian.org/archive/debian/20221109T211529Z/pool/main/q/qemu/
[3] https://salsa.debian.org/qemu-team/qemu/-/tree/debian-bullseye

Test Plan:
PASS: Build the qemu packages
PASS: Build iso with qemu packages
PASS: Bootstrap Debian ISO on AIO-SX
PASS: Ensure qemu packages are installed (apt list --installed)
PASS: Lock/Unlock AIO-SX *
* Future tests regarding the libvirt/qemu runtime features will be done
once all the pieces are in place in the ISO.

Depends-On: https://review.opendev.org/c/starlingx/root/+/864942

Story: 2010317
Task: 46390

Signed-off-by: Rafael Falcao <rafael.vieirafalcao@windriver.com>
Co-Authored-by: Thales Elero Cervi <thaleselero.cervi@windriver.com>
Change-Id: I424debf7eb24c024ba82a490cda746dbd5af0019
2022-11-18 18:10:18 -03:00

54 lines
1.9 KiB
Diff

From 6b809649650c367ea0458928434600ca064206c1 Mon Sep 17 00:00:00 2001
From: Paul Barrette <paul.barrette@windriver.com>
Date: Fri, 26 Apr 2019 17:41:04 -0300
Subject: [PATCH] STX: qemu: add -enable-dpdk runtime flag
For Intel's dpdk openvswitch support, qemu takes a set of dpdk
specific command line args. Qemu will dump and error if it doesn't
recognize the CLI args. So, add a new runtime flag to tell qemu that
it is using dpdk and then the main function can take the appropriate
action. This way, qemu can take dpdk args or run normally without
dpdk.
Signed-off-by: Paul Barrette <paul.barrette@windriver.com>
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
[ Update qemu-options.hx struc ]
Signed-off-by: Rafael Falcao <Rafael.VieiraFalcao@windriver.com>
---
qemu-options.hx | 7 +++++++
softmmu/vl.c | 1 +
2 files changed, 8 insertions(+)
diff --git a/qemu-options.hx b/qemu-options.hx
index 104632ea34..1a339453e4 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -906,6 +906,13 @@ DEFHEADING()
DEFHEADING(Block device options:)
+DEF("enable-dpdk", 0, QEMU_OPTION_enable_dpdk,
+ "-enable-dpdk initialized DPDK EAL environment\n", QEMU_ARCH_ALL)
+SRST
+``-enable-dpdk``
+ Enable DPDK EAL environment at init time (expecting DPDK CLI params).
+ERST
+
DEF("fda", HAS_ARG, QEMU_OPTION_fda,
"-fda/-fdb file use 'file' as floppy disk 0/1 image\n", QEMU_ARCH_ALL)
DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 5f556f1a0e..a398697d0d 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -3899,6 +3899,7 @@ void qemu_init(int argc, char **argv, char **envp)
qsp_enable();
break;
case QEMU_OPTION_nouserconfig:
+ case QEMU_OPTION_enable_dpdk:
/* Nothing to be parsed here. Especially, do not error out below. */
break;
default:
--
2.25.1