]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
domain_cgroup.c: update domain after setting blkio.weight
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Mon, 22 Mar 2021 19:28:59 +0000 (16:28 -0300)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Tue, 23 Mar 2021 13:15:30 +0000 (10:15 -0300)
Commit ac87d3520ad5 consolidated common cgroup code between the QEMU and
lxc drivers in domain_cgroup.c. In this process, in
virDomainCgroupSetupDomainBlkioParameters(), a call to
virCgroupGetBlkioWeight() went missing.

The result is that 'virsh blkiotune' is setting the blkio.weight for the
guest in the host cgroup, but not on the domain XML, because
virCgroupGetBlkioWeight() is also used to write the blkio.weight value
in the domain object.

Fix it by adding the virCgroupGetBlkioWeight() call in the
virDomainCgroupSetupDomainBlkioParameters() helper.

Fixes: ac87d3520ad542d558854a72b0ae0a81fddc6747
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1941407
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/hypervisor/domain_cgroup.c

index eb4fa20a9e6f49649a27dd1c8d147593cf7dbab7..05e3aa7e6aeb584bd0fabf8f7662b74b936629e0 100644 (file)
@@ -104,7 +104,8 @@ virDomainCgroupSetupDomainBlkioParameters(virCgroupPtr cgroup,
         virTypedParameterPtr param = &params[i];
 
         if (STREQ(param->field, VIR_DOMAIN_BLKIO_WEIGHT)) {
-            if (virCgroupSetBlkioWeight(cgroup, params[i].value.ui) < 0)
+            if (virCgroupSetBlkioWeight(cgroup, params[i].value.ui) < 0 ||
+                virCgroupGetBlkioWeight(cgroup, &def->blkio.weight) < 0)
                 ret = -1;
         } else if (STREQ(param->field, VIR_DOMAIN_BLKIO_DEVICE_WEIGHT) ||
                    STREQ(param->field, VIR_DOMAIN_BLKIO_DEVICE_READ_IOPS) ||