Re: [libvirt] [PATCHv2 38/62] qemu: driver: Use QOM backend name for disk IO throttling APIs

2018-08-16 Thread Ján Tomko

On Mon, Aug 13, 2018 at 06:00:12PM +0200, Peter Krempa wrote:

With -blockdev the drive alias can't be used any more so we need to
switch to the QOM name.

Signed-off-by: Peter Krempa 
---
src/qemu/qemu_driver.c | 30 --
1 file changed, 20 insertions(+), 10 deletions(-)



Reviewed-by: Ján Tomko 

Jano


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCHv2 38/62] qemu: driver: Use QOM backend name for disk IO throttling APIs

2018-08-13 Thread Peter Krempa
With -blockdev the drive alias can't be used any more so we need to
switch to the QOM name.

Signed-off-by: Peter Krempa 
---
 src/qemu/qemu_driver.c | 30 --
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 7b9c19087e..fb09278112 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -18202,7 +18202,8 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
 virDomainDefPtr def = NULL;
 virDomainDefPtr persistentDef = NULL;
 virDomainBlockIoTuneInfo info;
-char *device = NULL;
+char *drivealias = NULL;
+const char *qdevid = NULL;
 int ret = -1;
 size_t i;
 virDomainDiskDefPtr conf_disk = NULL;
@@ -18427,8 +18428,12 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
 if (!(disk = qemuDomainDiskByName(def, path)))
 goto endjob;

-if (!(device = qemuAliasDiskDriveFromDisk(disk)))
-goto endjob;
+if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) {
+qdevid = QEMU_DOMAIN_DISK_PRIVATE(disk)->backendQomName;
+} else {
+if (!(drivealias = qemuAliasDiskDriveFromDisk(disk)))
+goto endjob;
+}

 if (qemuDomainSetBlockIoTuneDefaults(, >blkdeviotune,
  set_fields) < 0)
@@ -18474,7 +18479,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,
   * via the JSON error code from the block_set_io_throttle call */

 qemuDomainObjEnterMonitor(driver, vm);
-ret = qemuMonitorSetBlockIoThrottle(priv->mon, device, NULL,
+ret = qemuMonitorSetBlockIoThrottle(priv->mon, drivealias, qdevid,
 , supportMaxOptions,
 set_fields & 
QEMU_BLOCK_IOTUNE_SET_GROUP_NAME,
 supportMaxLengthOptions);
@@ -18524,7 +18529,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom,

  cleanup:
 VIR_FREE(info.group_name);
-VIR_FREE(device);
+VIR_FREE(drivealias);
 virDomainObjEndAPI();
 if (eventNparams)
 virTypedParamsFree(eventParams, eventNparams);
@@ -18546,7 +18551,8 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
 virDomainDefPtr def = NULL;
 virDomainDefPtr persistentDef = NULL;
 virDomainBlockIoTuneInfo reply = {0};
-char *device = NULL;
+char *drivealias = NULL;
+const char *qdevid = NULL;
 int ret = -1;
 int maxparams;

@@ -18600,10 +18606,14 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
 if (!(disk = qemuDomainDiskByName(def, path)))
 goto endjob;

-if (!(device = qemuAliasDiskDriveFromDisk(disk)))
-goto endjob;
+if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) {
+qdevid = QEMU_DOMAIN_DISK_PRIVATE(disk)->backendQomName;
+} else {
+if (!(drivealias = qemuAliasDiskDriveFromDisk(disk)))
+goto endjob;
+}
 qemuDomainObjEnterMonitor(driver, vm);
-ret = qemuMonitorGetBlockIoThrottle(priv->mon, device, NULL, );
+ret = qemuMonitorGetBlockIoThrottle(priv->mon, drivealias, qdevid, 
);
 if (qemuDomainObjExitMonitor(driver, vm) < 0)
 goto endjob;
 if (ret < 0)
@@ -18678,7 +18688,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,

  cleanup:
 VIR_FREE(reply.group_name);
-VIR_FREE(device);
+VIR_FREE(drivealias);
 virDomainObjEndAPI();
 return ret;
 }
-- 
2.16.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list