54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
From 868eae25430b00560be5f078d12137b875ce6239 Mon Sep 17 00:00:00 2001
|
|
From: Peter Krempa <pkrempa@redhat.com>
|
|
Date: Thu, 26 Nov 2020 19:07:03 +0100
|
|
Subject: [PATCH 09/16] qemu: command: Generate commandline of iothread objects
|
|
JSON
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The commandline generator for 'iothread' objects has a private
|
|
implementation of the properties. Convert it to JSON so that it can be
|
|
later validated.
|
|
|
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
---
|
|
src/qemu/qemu_command.c | 18 +++++++++++-------
|
|
1 file changed, 11 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
index 4ec661e4b5..be51400928 100644
|
|
--- a/src/qemu/qemu_command.c
|
|
+++ b/src/qemu/qemu_command.c
|
|
@@ -7386,15 +7386,19 @@ qemuBuildIOThreadCommandLine(virCommandPtr cmd,
|
|
if (def->niothreadids == 0)
|
|
return 0;
|
|
|
|
- /* Create iothread objects using the defined iothreadids list
|
|
- * and the defined id and name from the list. These may be used
|
|
- * by a disk definition which will associate to an iothread by
|
|
- * supplying a value of an id from the list
|
|
- */
|
|
for (i = 0; i < def->niothreadids; i++) {
|
|
+ g_autoptr(virJSONValue) props = NULL;
|
|
+ g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
|
|
+ g_autofree char *alias = g_strdup_printf("iothread%u", def->iothreadids[i]->iothread_id);
|
|
+
|
|
+ if (qemuMonitorCreateObjectProps(&props, "iothread", alias, NULL) < 0)
|
|
+ return -1;
|
|
+
|
|
+ if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0)
|
|
+ return -1;
|
|
+
|
|
virCommandAddArg(cmd, "-object");
|
|
- virCommandAddArgFormat(cmd, "iothread,id=iothread%u",
|
|
- def->iothreadids[i]->iothread_id);
|
|
+ virCommandAddArgBuffer(cmd, &buf);
|
|
}
|
|
|
|
return 0;
|
|
--
|
|
2.27.0
|
|
|