From 2175c4dc62ed8755cfa25ace3beabe869edb3988 Mon Sep 17 00:00:00 2001 From: Suanming Mou Date: Sun, 28 Jun 2020 17:02:44 +0800 Subject: [PATCH] net/mlx5: convert configuration objects to unified malloc This commit allocates the miscellaneous configuration objects from the unified malloc function. Signed-off-by: Suanming Mou Acked-by: Matan Azrad --- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 8 +++++--- drivers/net/mlx5/linux/mlx5_os.c | 26 ++++++++++++------------- drivers/net/mlx5/mlx5.c | 14 ++++++------- 3 files changed, 25 insertions(+), 23 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c index 701614a53a..6b8a151898 100644 --- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c +++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c @@ -38,6 +38,7 @@ #include #include #include +#include #include "mlx5.h" #include "mlx5_rxtx.h" @@ -1162,8 +1163,9 @@ int mlx5_get_module_eeprom(struct rte_eth_dev *dev, rte_errno = EINVAL; return -rte_errno; } - eeprom = rte_calloc(__func__, 1, - (sizeof(struct ethtool_eeprom) + info->length), 0); + eeprom = mlx5_malloc(MLX5_MEM_ZERO, + (sizeof(struct ethtool_eeprom) + info->length), 0, + SOCKET_ID_ANY); if (!eeprom) { DRV_LOG(WARNING, "port %u cannot allocate memory for " "eeprom data", dev->data->port_id); @@ -1182,6 +1184,6 @@ int mlx5_get_module_eeprom(struct rte_eth_dev *dev, dev->data->port_id, strerror(rte_errno)); else rte_memcpy(info->data, eeprom->data, info->length); - rte_free(eeprom); + mlx5_free(eeprom); return ret; } diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index df0fae9bee..742e2fba49 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -163,7 +163,7 @@ mlx5_alloc_verbs_buf(size_t size, void *data) socket = ctrl->socket; } MLX5_ASSERT(data != NULL); - ret = rte_malloc_socket(__func__, size, alignment, socket); + ret = mlx5_malloc(0, size, alignment, socket); if (!ret && size) rte_errno = ENOMEM; return ret; @@ -181,7 +181,7 @@ static void mlx5_free_verbs_buf(void *ptr, void *data __rte_unused) { MLX5_ASSERT(data != NULL); - rte_free(ptr); + mlx5_free(ptr); } /** @@ -618,9 +618,9 @@ err_secondary: mlx5_glue->port_state_str(port_attr.state), port_attr.state); /* Allocate private eth device data. */ - priv = rte_zmalloc("ethdev private structure", + priv = mlx5_malloc(MLX5_MEM_ZERO | MLX5_MEM_RTE, sizeof(*priv), - RTE_CACHE_LINE_SIZE); + RTE_CACHE_LINE_SIZE, SOCKET_ID_ANY); if (priv == NULL) { DRV_LOG(ERR, "priv allocation failure"); err = ENOMEM; @@ -1187,7 +1187,7 @@ error: mlx5_flow_id_pool_release(priv->qrss_id_pool); if (own_domain_id) claim_zero(rte_eth_switch_domain_free(priv->domain_id)); - rte_free(priv); + mlx5_free(priv); if (eth_dev != NULL) eth_dev->data->dev_private = NULL; } @@ -1506,10 +1506,10 @@ mlx5_os_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, * Now we can determine the maximal * amount of devices to be spawned. */ - list = rte_zmalloc("device spawn data", - sizeof(struct mlx5_dev_spawn_data) * - (np ? np : nd), - RTE_CACHE_LINE_SIZE); + list = mlx5_malloc(MLX5_MEM_ZERO, + sizeof(struct mlx5_dev_spawn_data) * + (np ? np : nd), + RTE_CACHE_LINE_SIZE, SOCKET_ID_ANY); if (!list) { DRV_LOG(ERR, "spawn data array allocation failure"); rte_errno = ENOMEM; @@ -1800,7 +1800,7 @@ exit: if (nl_route >= 0) close(nl_route); if (list) - rte_free(list); + mlx5_free(list); MLX5_ASSERT(ibv_list); mlx5_glue->free_device_list(ibv_list); return ret; @@ -2281,8 +2281,8 @@ mlx5_os_stats_init(struct rte_eth_dev *dev) /* Allocate memory to grab stat names and values. */ str_sz = dev_stats_n * ETH_GSTRING_LEN; strings = (struct ethtool_gstrings *) - rte_malloc("xstats_strings", - str_sz + sizeof(struct ethtool_gstrings), 0); + mlx5_malloc(0, str_sz + sizeof(struct ethtool_gstrings), 0, + SOCKET_ID_ANY); if (!strings) { DRV_LOG(WARNING, "port %u unable to allocate memory for xstats", dev->data->port_id); @@ -2332,7 +2332,7 @@ mlx5_os_stats_init(struct rte_eth_dev *dev) mlx5_os_read_dev_stat(priv, "out_of_buffer", &stats_ctrl->imissed_base); stats_ctrl->imissed = 0; free: - rte_free(strings); + mlx5_free(strings); } /** diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 58da6cb3a2..98b17c71fe 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -762,11 +762,11 @@ mlx5_alloc_shared_dev_ctx(const struct mlx5_dev_spawn_data *spawn, } /* No device found, we have to create new shared context. */ MLX5_ASSERT(spawn->max_port); - sh = rte_zmalloc("ethdev shared ib context", + sh = mlx5_malloc(MLX5_MEM_ZERO | MLX5_MEM_RTE, sizeof(struct mlx5_dev_ctx_shared) + spawn->max_port * sizeof(struct mlx5_dev_shared_port), - RTE_CACHE_LINE_SIZE); + RTE_CACHE_LINE_SIZE, SOCKET_ID_ANY); if (!sh) { DRV_LOG(ERR, "shared context allocation failure"); rte_errno = ENOMEM; @@ -899,7 +899,7 @@ error: claim_zero(mlx5_glue->close_device(sh->ctx)); if (sh->flow_id_pool) mlx5_flow_id_pool_release(sh->flow_id_pool); - rte_free(sh); + mlx5_free(sh); MLX5_ASSERT(err > 0); rte_errno = err; return NULL; @@ -969,7 +969,7 @@ mlx5_free_shared_dev_ctx(struct mlx5_dev_ctx_shared *sh) if (sh->flow_id_pool) mlx5_flow_id_pool_release(sh->flow_id_pool); pthread_mutex_destroy(&sh->txpp.mutex); - rte_free(sh); + mlx5_free(sh); exit: pthread_mutex_unlock(&mlx5_dev_ctx_list_mutex); } @@ -1229,8 +1229,8 @@ mlx5_proc_priv_init(struct rte_eth_dev *dev) */ ppriv_size = sizeof(struct mlx5_proc_priv) + priv->txqs_n * sizeof(void *); - ppriv = rte_malloc_socket("mlx5_proc_priv", ppriv_size, - RTE_CACHE_LINE_SIZE, dev->device->numa_node); + ppriv = mlx5_malloc(MLX5_MEM_RTE, ppriv_size, RTE_CACHE_LINE_SIZE, + dev->device->numa_node); if (!ppriv) { rte_errno = ENOMEM; return -rte_errno; @@ -1251,7 +1251,7 @@ mlx5_proc_priv_uninit(struct rte_eth_dev *dev) { if (!dev->process_private) return; - rte_free(dev->process_private); + mlx5_free(dev->process_private); dev->process_private = NULL; } -- 2.20.1