]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Memory locking is only required for KVM guests on ppc64
authorAndrea Bolognani <abologna@redhat.com>
Wed, 29 Jun 2016 08:22:32 +0000 (10:22 +0200)
committerAndrea Bolognani <abologna@redhat.com>
Mon, 4 Jul 2016 08:46:27 +0000 (10:46 +0200)
Due to the way the hardware works, KVM on ppc64 always requires
memory locking; however, that is not the case for non-KVM ppc64
guests, eg. ppc64 guests that are running on x86_64 with TCG.

Only require memory locking for ppc64 guests if they are using
KVM or, as it's the case for all architectures, they have host
devices assigned using VFIO.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1350772

src/qemu/qemu_domain.c

index 304e61721efd8f32237d9697ffc3f3dfe63f1b65..42b5511e4b7342336545abb5d3ad5e02c270fcec 100644 (file)
@@ -5355,10 +5355,6 @@ qemuDomainRequiresMemLock(virDomainDefPtr def)
     if (def->mem.locked)
         return true;
 
-    /* ppc64 domains need to lock some memory even when VFIO is not used */
-    if (ARCH_IS_PPC64(def->os.arch))
-        return true;
-
     for (i = 0; i < def->nhostdevs; i++) {
         virDomainHostdevDefPtr dev = def->hostdevs[i];
 
@@ -5368,6 +5364,10 @@ qemuDomainRequiresMemLock(virDomainDefPtr def)
             return true;
     }
 
+    /* ppc64 KVM domains need to lock some memory even when VFIO is not used */
+    if (ARCH_IS_PPC64(def->os.arch) && def->virtType == VIR_DOMAIN_VIRT_KVM)
+        return true;
+
     return false;
 }