@@ -576,6 +576,9 @@ dpdk_mp_create(struct netdev_dpdk *dev, int mtu, bool *mp_exists)
return NULL;
}
+/* Returns a valid pointer when either of the two cases occur:
+ * a new mempool was just created or the requested mempool is already
+ * existing. */
static struct dpdk_mp *
dpdk_mp_get(struct netdev_dpdk *dev, int mtu, bool *mp_exists)
{
@@ -588,8 +591,9 @@ dpdk_mp_get(struct netdev_dpdk *dev, int mtu, bool *mp_exists)
return dmp;
}
+/* Release an existing mempool. */
static void
-dpdk_mp_put(struct dpdk_mp *dmp)
+dpdk_mp_free(struct dpdk_mp *dmp)
{
char *mp_name;
@@ -606,8 +610,8 @@ dpdk_mp_put(struct dpdk_mp *dmp)
ovs_mutex_unlock(&dpdk_mp_mutex);
}
-/* Tries to allocate new mempool on requested_socket_id with
- * mbuf size corresponding to requested_mtu.
+/* Tries to allocate a new mempool on requested_socket_id with a size
+ * determined by requested_mtu and requested Rx/Tx queues.
* On success new configuration will be applied.
* On error, device will be left unchanged. */
static int
@@ -628,7 +632,8 @@ netdev_dpdk_mempool_configure(struct netdev_dpdk *dev)
} else if (mp_exists) {
return EEXIST;
} else {
- dpdk_mp_put(dev->dpdk_mp);
+ /* A new mempool was created, release the previous one. */
+ dpdk_mp_free(dev->dpdk_mp);
dev->dpdk_mp = mp;
dev->mtu = dev->requested_mtu;
dev->socket_id = dev->requested_socket_id;
@@ -1073,7 +1078,7 @@ common_destruct(struct netdev_dpdk *dev)
OVS_EXCLUDED(dev->mutex)
{
rte_free(dev->tx_q);
- dpdk_mp_put(dev->dpdk_mp);
+ dpdk_mp_free(dev->dpdk_mp);
ovs_list_remove(&dev->list_node);
free(ovsrcu_get_protected(struct ingress_policer *,
Rename dpdk_mp_put as dpdk_mp_free, add other comments to mempool functions. CC: Ciara Loftus <ciara.loftus@intel.com> CC: Kevin Traynor <ktraynor@redhat.com> CC: Aaron Conole <aconole@redhat.com> Signed-off-by: Antonio Fischetti <antonio.fischetti@intel.com> --- lib/netdev-dpdk.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-)