From patchwork Thu Jul 16 09:20:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suanming Mou X-Patchwork-Id: 74215 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B5FC5A0540; Thu, 16 Jul 2020 11:21:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EAAE51BFBA; Thu, 16 Jul 2020 11:20:38 +0200 (CEST) Received: from git-send-mailer.rdmz.labs.mlnx (unknown [37.142.13.130]) by dpdk.org (Postfix) with ESMTP id 2E4EC1BED9 for ; Thu, 16 Jul 2020 11:20:34 +0200 (CEST) From: Suanming Mou To: viacheslavo@mellanox.com, matan@mellanox.com Cc: orika@mellanox.com, rasland@mellanox.com, dev@dpdk.org Date: Thu, 16 Jul 2020 17:20:15 +0800 Message-Id: <1594891216-11778-7-git-send-email-suanmingm@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1594891216-11778-1-git-send-email-suanmingm@mellanox.com> References: <1594785603-152773-1-git-send-email-suanmingm@mellanox.com> <1594891216-11778-1-git-send-email-suanmingm@mellanox.com> Subject: [dpdk-dev] [PATCH v2 6/7] net/mlx5: convert configuration objects to unified malloc X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 701614a..6b8a151 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 d5acef0..1698f2c 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -163,7 +163,7 @@ 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 @@ mlx5_free_verbs_buf(void *ptr, void *data __rte_unused) { MLX5_ASSERT(data != NULL); - rte_free(ptr); + mlx5_free(ptr); } /** @@ -618,9 +618,9 @@ 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; @@ -1109,7 +1109,7 @@ 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; } @@ -1428,10 +1428,10 @@ * 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; @@ -1722,7 +1722,7 @@ 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; @@ -2200,8 +2200,8 @@ /* 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); @@ -2251,7 +2251,7 @@ 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 ba86c68..daf65f3 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -644,11 +644,11 @@ struct mlx5_dev_ctx_shared * } /* 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; @@ -764,7 +764,7 @@ struct mlx5_dev_ctx_shared * 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; @@ -829,7 +829,7 @@ struct mlx5_dev_ctx_shared * 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); exit: pthread_mutex_unlock(&mlx5_dev_ctx_list_mutex); } @@ -1089,8 +1089,8 @@ struct mlx5_dev_ctx_shared * */ 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; @@ -1111,7 +1111,7 @@ struct mlx5_dev_ctx_shared * { if (!dev->process_private) return; - rte_free(dev->process_private); + mlx5_free(dev->process_private); dev->process_private = NULL; }