hostmem: set MPOL_MF_MOVE
authorMichael S. Tsirkin <mst@redhat.com>
Wed, 13 Aug 2014 11:50:24 +0000 (13:50 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 20 Aug 2014 19:15:56 +0000 (21:15 +0200)
When memory is allocated on a wrong node, MPOL_MF_STRICT
doesn't move it - it just fails the allocation.
A simple way to reproduce the failure is with mlock=on
realtime feature.

The code comment actually says: "ensure policy won't be ignored"
so setting MPOL_MF_MOVE seems like a better way to do this.

Cc: qemu-stable@nongnu.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
backends/hostmem.c

index e7eec3756a7997f0006539b7319057d81b66669b..99e8f99da8fd6d6dfa77fd91e3f380fa457c886a 100644 (file)
@@ -295,7 +295,7 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp)
         /* ensure policy won't be ignored in case memory is preallocated
          * before mbind(). note: MPOL_MF_STRICT is ignored on hugepages so
          * this doesn't catch hugepage case. */
-        unsigned flags = MPOL_MF_STRICT;
+        unsigned flags = MPOL_MF_STRICT | MPOL_MF_MOVE;
 
         /* check for invalid host-nodes and policies and give more verbose
          * error messages than mbind(). */