get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/74041/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 74041,
    "url": "http://patches.dpdk.org/api/patches/74041/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1594785603-152773-8-git-send-email-suanmingm@mellanox.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1594785603-152773-8-git-send-email-suanmingm@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1594785603-152773-8-git-send-email-suanmingm@mellanox.com",
    "date": "2020-07-15T04:00:03",
    "name": "[7/7] net/mlx5: convert Rx/Tx queue objects to unified malloc",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "6e01d4645cdb2a4d4df04817c5c98f8ee749b420",
    "submitter": {
        "id": 1358,
        "url": "http://patches.dpdk.org/api/people/1358/?format=api",
        "name": "Suanming Mou",
        "email": "suanmingm@mellanox.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1594785603-152773-8-git-send-email-suanmingm@mellanox.com/mbox/",
    "series": [
        {
            "id": 11031,
            "url": "http://patches.dpdk.org/api/series/11031/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11031",
            "date": "2020-07-15T03:59:56",
            "name": "net/mlx5: add sys_mem_en devarg",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/11031/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/74041/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/74041/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 97F65A0540;\n\tWed, 15 Jul 2020 06:01:21 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 1CAAB1C2F7;\n\tWed, 15 Jul 2020 06:00:27 +0200 (CEST)",
            "from git-send-mailer.rdmz.labs.mlnx (unknown [37.142.13.130])\n by dpdk.org (Postfix) with ESMTP id 3F18E1C23C\n for <dev@dpdk.org>; Wed, 15 Jul 2020 06:00:21 +0200 (CEST)"
        ],
        "From": "Suanming Mou <suanmingm@mellanox.com>",
        "To": "viacheslavo@mellanox.com,\n\tmatan@mellanox.com",
        "Cc": "orika@mellanox.com,\n\trasland@mellanox.com,\n\tdev@dpdk.org",
        "Date": "Wed, 15 Jul 2020 12:00:03 +0800",
        "Message-Id": "<1594785603-152773-8-git-send-email-suanmingm@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1594785603-152773-1-git-send-email-suanmingm@mellanox.com>",
        "References": "<1594785603-152773-1-git-send-email-suanmingm@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH 7/7] net/mlx5: convert Rx/Tx queue objects to\n\tunified malloc",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This commit allocates the Rx/Tx queue objects from unified malloc\nfunction.\n\nSigned-off-by: Suanming Mou <suanmingm@mellanox.com>\nAcked-by: Matan Azrad <matan@mellanox.com>\n---\n drivers/net/mlx5/mlx5_rxq.c | 37 ++++++++++++++++++-------------------\n drivers/net/mlx5/mlx5_txq.c | 44 +++++++++++++++++++++-----------------------\n 2 files changed, 39 insertions(+), 42 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex c8e3a82..9c9cc3a 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -641,7 +641,7 @@\n rxq_release_rq_resources(struct mlx5_rxq_ctrl *rxq_ctrl)\n {\n \tif (rxq_ctrl->rxq.wqes) {\n-\t\trte_free((void *)(uintptr_t)rxq_ctrl->rxq.wqes);\n+\t\tmlx5_free((void *)(uintptr_t)rxq_ctrl->rxq.wqes);\n \t\trxq_ctrl->rxq.wqes = NULL;\n \t}\n \tif (rxq_ctrl->wq_umem) {\n@@ -707,7 +707,7 @@\n \t\t\tclaim_zero(mlx5_glue->destroy_comp_channel\n \t\t\t\t   (rxq_obj->channel));\n \t\tLIST_REMOVE(rxq_obj, next);\n-\t\trte_free(rxq_obj);\n+\t\tmlx5_free(rxq_obj);\n \t\treturn 0;\n \t}\n \treturn 1;\n@@ -1233,15 +1233,15 @@\n \t/* Calculate and allocate WQ memory space. */\n \twqe_size = 1 << log_wqe_size; /* round up power of two.*/\n \twq_size = wqe_n * wqe_size;\n-\tbuf = rte_calloc_socket(__func__, 1, wq_size, MLX5_WQE_BUF_ALIGNMENT,\n-\t\t\t\trxq_ctrl->socket);\n+\tbuf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, wq_size,\n+\t\t\t  MLX5_WQE_BUF_ALIGNMENT, rxq_ctrl->socket);\n \tif (!buf)\n \t\treturn NULL;\n \trxq_data->wqes = buf;\n \trxq_ctrl->wq_umem = mlx5_glue->devx_umem_reg(priv->sh->ctx,\n \t\t\t\t\t\t     buf, wq_size, 0);\n \tif (!rxq_ctrl->wq_umem) {\n-\t\trte_free(buf);\n+\t\tmlx5_free(buf);\n \t\treturn NULL;\n \t}\n \tmlx5_devx_wq_attr_fill(priv, rxq_ctrl, &rq_attr.wq_attr);\n@@ -1275,8 +1275,8 @@\n \n \tMLX5_ASSERT(rxq_data);\n \tMLX5_ASSERT(!rxq_ctrl->obj);\n-\ttmpl = rte_calloc_socket(__func__, 1, sizeof(*tmpl), 0,\n-\t\t\t\t rxq_ctrl->socket);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl), 0,\n+\t\t\t   rxq_ctrl->socket);\n \tif (!tmpl) {\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u Rx queue %u cannot allocate verbs resources\",\n@@ -1294,7 +1294,7 @@\n \t\t\tDRV_LOG(ERR, \"total data size %u power of 2 is \"\n \t\t\t\t\"too large for hairpin\",\n \t\t\t\tpriv->config.log_hp_size);\n-\t\t\trte_free(tmpl);\n+\t\t\tmlx5_free(tmpl);\n \t\t\trte_errno = ERANGE;\n \t\t\treturn NULL;\n \t\t}\n@@ -1314,7 +1314,7 @@\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u Rx hairpin queue %u can't create rq object\",\n \t\t\tdev->data->port_id, idx);\n-\t\trte_free(tmpl);\n+\t\tmlx5_free(tmpl);\n \t\trte_errno = errno;\n \t\treturn NULL;\n \t}\n@@ -1362,8 +1362,8 @@ struct mlx5_rxq_obj *\n \t\treturn mlx5_rxq_obj_hairpin_new(dev, idx);\n \tpriv->verbs_alloc_ctx.type = MLX5_VERBS_ALLOC_TYPE_RX_QUEUE;\n \tpriv->verbs_alloc_ctx.obj = rxq_ctrl;\n-\ttmpl = rte_calloc_socket(__func__, 1, sizeof(*tmpl), 0,\n-\t\t\t\t rxq_ctrl->socket);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl), 0,\n+\t\t\t   rxq_ctrl->socket);\n \tif (!tmpl) {\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u Rx queue %u cannot allocate verbs resources\",\n@@ -1503,7 +1503,7 @@ struct mlx5_rxq_obj *\n \t\tif (tmpl->channel)\n \t\t\tclaim_zero(mlx5_glue->destroy_comp_channel\n \t\t\t\t\t\t\t(tmpl->channel));\n-\t\trte_free(tmpl);\n+\t\tmlx5_free(tmpl);\n \t\trte_errno = ret; /* Restore rte_errno. */\n \t}\n \tif (type == MLX5_RXQ_OBJ_TYPE_DEVX_RQ)\n@@ -1825,10 +1825,8 @@ struct mlx5_rxq_ctrl *\n \t\trte_errno = ENOSPC;\n \t\treturn NULL;\n \t}\n-\ttmpl = rte_calloc_socket(\"RXQ\", 1,\n-\t\t\t\t sizeof(*tmpl) +\n-\t\t\t\t desc_n * sizeof(struct rte_mbuf *),\n-\t\t\t\t 0, socket);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl) +\n+\t\t\t   desc_n * sizeof(struct rte_mbuf *), 0, socket);\n \tif (!tmpl) {\n \t\trte_errno = ENOMEM;\n \t\treturn NULL;\n@@ -2007,7 +2005,7 @@ struct mlx5_rxq_ctrl *\n \tLIST_INSERT_HEAD(&priv->rxqsctrl, tmpl, next);\n \treturn tmpl;\n error:\n-\trte_free(tmpl);\n+\tmlx5_free(tmpl);\n \treturn NULL;\n }\n \n@@ -2033,7 +2031,8 @@ struct mlx5_rxq_ctrl *\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n \tstruct mlx5_rxq_ctrl *tmpl;\n \n-\ttmpl = rte_calloc_socket(\"RXQ\", 1, sizeof(*tmpl), 0, SOCKET_ID_ANY);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl), 0,\n+\t\t\t   SOCKET_ID_ANY);\n \tif (!tmpl) {\n \t\trte_errno = ENOMEM;\n \t\treturn NULL;\n@@ -2112,7 +2111,7 @@ struct mlx5_rxq_ctrl *\n \t\tif (rxq_ctrl->type == MLX5_RXQ_TYPE_STANDARD)\n \t\t\tmlx5_mr_btree_free(&rxq_ctrl->rxq.mr_ctrl.cache_bh);\n \t\tLIST_REMOVE(rxq_ctrl, next);\n-\t\trte_free(rxq_ctrl);\n+\t\tmlx5_free(rxq_ctrl);\n \t\t(*priv->rxqs)[idx] = NULL;\n \t\treturn 0;\n \t}\ndiff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c\nindex 35b3ade..ac9e455 100644\n--- a/drivers/net/mlx5/mlx5_txq.c\n+++ b/drivers/net/mlx5/mlx5_txq.c\n@@ -31,6 +31,7 @@\n #include <mlx5_devx_cmds.h>\n #include <mlx5_common.h>\n #include <mlx5_common_mr.h>\n+#include <mlx5_malloc.h>\n \n #include \"mlx5_defs.h\"\n #include \"mlx5_utils.h\"\n@@ -521,8 +522,8 @@\n \n \tMLX5_ASSERT(txq_data);\n \tMLX5_ASSERT(!txq_ctrl->obj);\n-\ttmpl = rte_calloc_socket(__func__, 1, sizeof(*tmpl), 0,\n-\t\t\t\t txq_ctrl->socket);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl), 0,\n+\t\t\t   txq_ctrl->socket);\n \tif (!tmpl) {\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u Tx queue %u cannot allocate memory resources\",\n@@ -541,7 +542,7 @@\n \t\t\tDRV_LOG(ERR, \"total data size %u power of 2 is \"\n \t\t\t\t\"too large for hairpin\",\n \t\t\t\tpriv->config.log_hp_size);\n-\t\t\trte_free(tmpl);\n+\t\t\tmlx5_free(tmpl);\n \t\t\trte_errno = ERANGE;\n \t\t\treturn NULL;\n \t\t}\n@@ -561,7 +562,7 @@\n \t\tDRV_LOG(ERR,\n \t\t\t\"port %u tx hairpin queue %u can't create sq object\",\n \t\t\tdev->data->port_id, idx);\n-\t\trte_free(tmpl);\n+\t\tmlx5_free(tmpl);\n \t\trte_errno = errno;\n \t\treturn NULL;\n \t}\n@@ -715,8 +716,9 @@ struct mlx5_txq_obj *\n \t\trte_errno = errno;\n \t\tgoto error;\n \t}\n-\ttxq_obj = rte_calloc_socket(__func__, 1, sizeof(struct mlx5_txq_obj), 0,\n-\t\t\t\t    txq_ctrl->socket);\n+\ttxq_obj = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO,\n+\t\t\t      sizeof(struct mlx5_txq_obj), 0,\n+\t\t\t      txq_ctrl->socket);\n \tif (!txq_obj) {\n \t\tDRV_LOG(ERR, \"port %u Tx queue %u cannot allocate memory\",\n \t\t\tdev->data->port_id, idx);\n@@ -758,11 +760,9 @@ struct mlx5_txq_obj *\n \ttxq_data->wqe_pi = 0;\n \ttxq_data->wqe_comp = 0;\n \ttxq_data->wqe_thres = txq_data->wqe_s / MLX5_TX_COMP_THRESH_INLINE_DIV;\n-\ttxq_data->fcqs = rte_calloc_socket(__func__,\n-\t\t\t\t\t   txq_data->cqe_s,\n-\t\t\t\t\t   sizeof(*txq_data->fcqs),\n-\t\t\t\t\t   RTE_CACHE_LINE_SIZE,\n-\t\t\t\t\t   txq_ctrl->socket);\n+\ttxq_data->fcqs = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO,\n+\t\t\t\t     txq_data->cqe_s * sizeof(*txq_data->fcqs),\n+\t\t\t\t     RTE_CACHE_LINE_SIZE, txq_ctrl->socket);\n \tif (!txq_data->fcqs) {\n \t\tDRV_LOG(ERR, \"port %u Tx queue %u cannot allocate memory (FCQ)\",\n \t\t\tdev->data->port_id, idx);\n@@ -818,9 +818,9 @@ struct mlx5_txq_obj *\n \tif (tmpl.qp)\n \t\tclaim_zero(mlx5_glue->destroy_qp(tmpl.qp));\n \tif (txq_data->fcqs)\n-\t\trte_free(txq_data->fcqs);\n+\t\tmlx5_free(txq_data->fcqs);\n \tif (txq_obj)\n-\t\trte_free(txq_obj);\n+\t\tmlx5_free(txq_obj);\n \tpriv->verbs_alloc_ctx.type = MLX5_VERBS_ALLOC_TYPE_NONE;\n \trte_errno = ret; /* Restore rte_errno. */\n \treturn NULL;\n@@ -874,10 +874,10 @@ struct mlx5_txq_obj *\n \t\t\tclaim_zero(mlx5_glue->destroy_qp(txq_obj->qp));\n \t\t\tclaim_zero(mlx5_glue->destroy_cq(txq_obj->cq));\n \t\t\t\tif (txq_obj->txq_ctrl->txq.fcqs)\n-\t\t\t\t\trte_free(txq_obj->txq_ctrl->txq.fcqs);\n+\t\t\t\t\tmlx5_free(txq_obj->txq_ctrl->txq.fcqs);\n \t\t}\n \t\tLIST_REMOVE(txq_obj, next);\n-\t\trte_free(txq_obj);\n+\t\tmlx5_free(txq_obj);\n \t\treturn 0;\n \t}\n \treturn 1;\n@@ -1293,10 +1293,8 @@ struct mlx5_txq_ctrl *\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n \tstruct mlx5_txq_ctrl *tmpl;\n \n-\ttmpl = rte_calloc_socket(\"TXQ\", 1,\n-\t\t\t\t sizeof(*tmpl) +\n-\t\t\t\t desc * sizeof(struct rte_mbuf *),\n-\t\t\t\t 0, socket);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl) +\n+\t\t\t   desc * sizeof(struct rte_mbuf *), 0, socket);\n \tif (!tmpl) {\n \t\trte_errno = ENOMEM;\n \t\treturn NULL;\n@@ -1336,7 +1334,7 @@ struct mlx5_txq_ctrl *\n \tLIST_INSERT_HEAD(&priv->txqsctrl, tmpl, next);\n \treturn tmpl;\n error:\n-\trte_free(tmpl);\n+\tmlx5_free(tmpl);\n \treturn NULL;\n }\n \n@@ -1362,8 +1360,8 @@ struct mlx5_txq_ctrl *\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n \tstruct mlx5_txq_ctrl *tmpl;\n \n-\ttmpl = rte_calloc_socket(\"TXQ\", 1,\n-\t\t\t\t sizeof(*tmpl), 0, SOCKET_ID_ANY);\n+\ttmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl), 0,\n+\t\t\t   SOCKET_ID_ANY);\n \tif (!tmpl) {\n \t\trte_errno = ENOMEM;\n \t\treturn NULL;\n@@ -1432,7 +1430,7 @@ struct mlx5_txq_ctrl *\n \t\ttxq_free_elts(txq);\n \t\tmlx5_mr_btree_free(&txq->txq.mr_ctrl.cache_bh);\n \t\tLIST_REMOVE(txq, next);\n-\t\trte_free(txq);\n+\t\tmlx5_free(txq);\n \t\t(*priv->txqs)[idx] = NULL;\n \t\treturn 0;\n \t}\n",
    "prefixes": [
        "7/7"
    ]
}