On Thu, Jan 18, 2018 at 02:00:43PM +0100, Olivier Matz wrote: > If there is no memory available on the same numa node than the > device, it is preferable to fallback on another socket instead > of failing. > > Fixes: 1e3a39f72d5d ("net/mlx5: allocate verbs object into shared memory") > Cc: sta...@dpdk.org > > Signed-off-by: Olivier Matz <olivier.m...@6wind.com> > --- > drivers/net/mlx5/mlx5.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c > index 1c95f3520..312f3d5be 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -143,6 +143,10 @@ mlx5_alloc_verbs_buf(size_t size, void *data) > assert(data != NULL); > ret = rte_malloc_socket(__func__, size, alignment, > priv->dev->device->numa_node); > + if (ret == NULL) > + ret = rte_malloc_socket(__func__, size, alignment, > + SOCKET_ID_ANY); > + > DEBUG("Extern alloc size: %lu, align: %lu: %p", size, alignment, ret); > return ret; > } > -- > 2.11.0 >
This function is the finalisation of the creation of the queues and contains the buffers to the CQ/WQ which must be on the correct socket otherwise the performances will be limited. Even if this function is only called on dev_start() it must reflect the configuration requested from the application on the rte_eth_{tx,rx}_queue_setup(). Regards, -- Nélio Laranjeiro 6WIND