For readability purposes dpdk_mp_put is renamed as dpdk_mp_free. Some other comments are also added to mempool functions.
CC: Mark B Kavanagh <[email protected]> CC: Darrell Ball <[email protected]> CC: Ciara Loftus <[email protected]> CC: Kevin Traynor <[email protected]> CC: Aaron Conole <[email protected]> Signed-off-by: Antonio Fischetti <[email protected]> --- lib/netdev-dpdk.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 0057e6b..411cb06 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -587,6 +587,10 @@ dpdk_mp_create(struct netdev_dpdk *dev, int mtu, bool *mp_exists) return NULL; } +/* Returns a valid pointer when either of the following is true: + * - a new mempool was just created + * - a matching mempool already exists + */ static struct dpdk_mp * dpdk_mp_get(struct netdev_dpdk *dev, int mtu, bool *mp_exists) { @@ -599,8 +603,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; @@ -618,8 +623,8 @@ dpdk_mp_put(struct dpdk_mp *dmp) } /* Tries to allocate a new mempool - or re-use an existing one where - * appropriate - on requested_socket_id with mbuf size corresponding to - * requested_mtu. + * appropriate - on requested_socket_id with a size determined by + * requested_mtu and requested Rx/Tx queues. * On success - or when re-using an existing mempool - the new configuration * will be applied. * On error, device will be left unchanged. */ @@ -646,7 +651,8 @@ netdev_dpdk_mempool_configure(struct netdev_dpdk *dev) dev->max_packet_len = MTU_TO_FRAME_LEN(dev->mtu); 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; @@ -1091,7 +1097,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 *, -- 2.4.11 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
