[ovs-dev] [PATCH V2] netdev-dpdk: fix mempool_configure error state

Stokes, Ian ian.stokes at intel.com
Mon Mar 13 11:46:17 UTC 2017


> netdev_dpdk_mempool_configure obtains a handle to a DPDK memory pool via a
> call to dpdk_mp_get. If dpdk_mp_get fails, the former informs the user
> that insufficient memory is available, and  returns ENOMEM. However, this
> is potentially misleading, as there are a number of reasons why creation
> of a mempool can fail (as per rte_mempool_create),
> including:
>    - insufficient memory available
>    - mempool already exists
>    - other memory allocation error
> 
> Update the error log to reflect this fact, and return rte_errno in the
> event of error, instead of ENOMEM.
> 
> Signed-off-by: Mark Kavanagh <mark.b.kavanagh at intel.com>
> Fixes: 0072e931 ("netdev-dpdk: add support for jumbo frames")
> ---
>  lib/netdev-dpdk.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index ddc651b..858d995
> 100644
> --- a/lib/netdev-dpdk.c
> +++ b/lib/netdev-dpdk.c
> @@ -571,10 +571,11 @@ netdev_dpdk_mempool_configure(struct netdev_dpdk
> *dev)
> 
>      mp = dpdk_mp_get(dev->requested_socket_id,
> FRAME_LEN_TO_MTU(buf_size));
>      if (!mp) {
> -        VLOG_ERR("Insufficient memory to create memory pool for netdev "
> -                 "%s, with MTU %d on socket %d\n",
> -                 dev->up.name, dev->requested_mtu, dev-
> >requested_socket_id);
> -        return ENOMEM;
> +        VLOG_ERR("Failed to create memory pool for netdev "
> +                 "%s, with MTU %d on socket %d: %s\n",
> +                 dev->up.name, dev->requested_mtu, dev-
> >requested_socket_id,
> +                 rte_strerror(rte_errno));
> +        return rte_errno;
>      } else {
>          dpdk_mp_put(dev->dpdk_mp);
>          dev->dpdk_mp = mp;
> --

LGTM,

Acked-by: Ian Stokes <ian.stokes at intel.com>


More information about the dev mailing list