]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainPinIOThread: Copy the cpu bitmap instead of re-parsing it
authorPeter Krempa <pkrempa@redhat.com>
Tue, 18 Jan 2022 09:06:38 +0000 (10:06 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 18 Jan 2022 13:16:48 +0000 (14:16 +0100)
The bitmap recorded in the live/persistent definition was re-parsed two
more times. We can copy it which is cheaper and less verbose.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_driver.c

index e150b86cef297dad0fbe3ac4e7f5949a4ad62d59..077547e1d33c5b52a51d26978c522118bfba83df 100644 (file)
@@ -5011,7 +5011,6 @@ qemuDomainPinIOThread(virDomainPtr dom,
 
     if (def) {
         virDomainIOThreadIDDef *iothrid;
-        virBitmap *cpumask;
 
         if (!(iothrid = virDomainIOThreadIDFind(def, iothread_id))) {
             virReportError(VIR_ERR_INVALID_ARG,
@@ -5019,11 +5018,8 @@ qemuDomainPinIOThread(virDomainPtr dom,
             goto endjob;
         }
 
-        if (!(cpumask = virBitmapNewData(cpumap, maplen)))
-            goto endjob;
-
         virBitmapFree(iothrid->cpumask);
-        iothrid->cpumask = cpumask;
+        iothrid->cpumask = virBitmapNewCopy(pcpumap);
         iothrid->autofill = false;
 
         /* Configure the corresponding cpuset cgroup before set affinity. */
@@ -5060,7 +5056,6 @@ qemuDomainPinIOThread(virDomainPtr dom,
 
     if (persistentDef) {
         virDomainIOThreadIDDef *iothrid;
-        virBitmap *cpumask;
 
         if (!(iothrid = virDomainIOThreadIDFind(persistentDef, iothread_id))) {
             virReportError(VIR_ERR_INVALID_ARG,
@@ -5068,11 +5063,8 @@ qemuDomainPinIOThread(virDomainPtr dom,
             goto endjob;
         }
 
-        if (!(cpumask = virBitmapNewData(cpumap, maplen)))
-            goto endjob;
-
         virBitmapFree(iothrid->cpumask);
-        iothrid->cpumask = cpumask;
+        iothrid->cpumask = virBitmapNewCopy(pcpumap);
         iothrid->autofill = false;
 
         ret = virDomainDefSave(persistentDef, driver->xmlopt, cfg->configDir);