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 <[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]> Thanks. Applied to numa tree, with the following indentation fix: 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; } } > --- > 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 > > -- Eduardo
