diff mbox

backends/hostmem: Ignore ENOSYS while setting MPOL_DEFAULT

Message ID 20151027173134.GJ4180@thinpad.lan.raisama.net
State New
Headers show

Commit Message

Eduardo Habkost Oct. 27, 2015, 5:31 p.m. UTC
On Tue, Oct 27, 2015 at 03:51:31PM +0300, Pavel Fedin wrote:
> Currently hostmem backend fails if CONFIG_NUMA is enabled for the qemu
> (default), but NUMA is not supported by the kernel. This makes it
> impossible to use ivshmem in such configurations.
> 
> This patch fixes the problem by ignoring ENOSYS error if policy is set to
> MPOL_DEFAULT. This way the code behaves in the same way as if CONFIG_NUMA
> was not defined. qemu will still fail if the user specifies some other
> policy, so that the user knows it.
> 
> Signed-off-by: Pavel Fedin <p.fedin@samsung.com>

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

Thanks. Applied to numa tree, with the following indentation fix:


> ---
>  backends/hostmem.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/backends/hostmem.c b/backends/hostmem.c
> index 41ba2af..94a4ac0 100644
> --- a/backends/hostmem.c
> +++ b/backends/hostmem.c
> @@ -313,9 +313,11 @@ host_memory_backend_memory_complete(UserCreatable *uc, Error **errp)
>          assert(maxnode <= MAX_NODES);
>          if (mbind(ptr, sz, backend->policy,
>                    maxnode ? backend->host_nodes : NULL, maxnode + 1, flags)) {
> -            error_setg_errno(errp, errno,
> +            if (backend->policy != MPOL_DEFAULT || errno != ENOSYS) {
> +                error_setg_errno(errp, errno,
>                               "cannot bind memory to host NUMA nodes");
> -            return;
> +                return;
> +            }
>          }
>  #endif
>          /* Preallocate memory after the NUMA policy has been instantiated.
> -- 
> 1.9.5.msysgit.0
> 
>
diff mbox

Patch

diff --git a/backends/hostmem.c b/backends/hostmem.c
index 94a4ac0..1b4eb45 100644
--- a/backends/hostmem.c
+++ b/backends/hostmem.c
@@ -315,7 +315,7 @@  host_memory_backend_memory_complete(UserCreatable *uc, Error **errp)
                   maxnode ? backend->host_nodes : NULL, maxnode + 1, flags)) {
             if (backend->policy != MPOL_DEFAULT || errno != ENOSYS) {
                 error_setg_errno(errp, errno,
-                             "cannot bind memory to host NUMA nodes");
+                                 "cannot bind memory to host NUMA nodes");
                 return;
             }
         }