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

Mark Kavanagh mark.b.kavanagh at intel.com
Mon Mar 13 10:11:57 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 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index ddc651b..7eeced8 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -571,10 +571,10 @@ 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 "
+        VLOG_ERR("Failed 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;
+        return rte_errno;
     } else {
         dpdk_mp_put(dev->dpdk_mp);
         dev->dpdk_mp = mp;
-- 
1.9.3



More information about the dev mailing list