get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 92768,
    "url": "https://patches.dpdk.org/api/patches/92768/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210504210857.3398397-8-matan@nvidia.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20210504210857.3398397-8-matan@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210504210857.3398397-8-matan@nvidia.com",
    "date": "2021-05-04T21:08:49",
    "name": "[v3,07/15] crypto/mlx5: add memory region management",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "d9bda8bc294ed6f34f88e4d7b48a36e3ac64ec8f",
    "submitter": {
        "id": 1911,
        "url": "https://patches.dpdk.org/api/people/1911/?format=api",
        "name": "Matan Azrad",
        "email": "matan@nvidia.com"
    },
    "delegate": {
        "id": 6690,
        "url": "https://patches.dpdk.org/api/users/6690/?format=api",
        "username": "akhil",
        "first_name": "akhil",
        "last_name": "goyal",
        "email": "gakhil@marvell.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210504210857.3398397-8-matan@nvidia.com/mbox/",
    "series": [
        {
            "id": 16812,
            "url": "https://patches.dpdk.org/api/series/16812/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=16812",
            "date": "2021-05-04T21:08:42",
            "name": "drivers: introduce mlx5 crypto PMD",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/16812/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/92768/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/92768/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 92FBBA0A02;\n\tTue,  4 May 2021 23:10:27 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DE80C4112C;\n\tTue,  4 May 2021 23:09:42 +0200 (CEST)",
            "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2051.outbound.protection.outlook.com [40.107.243.51])\n by mails.dpdk.org (Postfix) with ESMTP id 8A22841117\n for <dev@dpdk.org>; Tue,  4 May 2021 23:09:40 +0200 (CEST)",
            "from CO1PR15CA0069.namprd15.prod.outlook.com (2603:10b6:101:20::13)\n by BN6PR1201MB0145.namprd12.prod.outlook.com (2603:10b6:405:4d::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.44; Tue, 4 May\n 2021 21:09:35 +0000",
            "from CO1NAM11FT053.eop-nam11.prod.protection.outlook.com\n (2603:10b6:101:20:cafe::bc) by CO1PR15CA0069.outlook.office365.com\n (2603:10b6:101:20::13) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend\n Transport; Tue, 4 May 2021 21:09:35 +0000",
            "from mail.nvidia.com (216.228.112.34) by\n CO1NAM11FT053.mail.protection.outlook.com (10.13.175.63) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4087.27 via Frontend Transport; Tue, 4 May 2021 21:09:35 +0000",
            "from nvidia.com (172.20.145.6) by HQMAIL107.nvidia.com\n (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 4 May\n 2021 21:09:33 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=JtRah1IAplDNNb0uV/dR9Ccqp0EM49WdS79tkA+jPkfUJgBi6t79ppe+RxCMX1/+Ty4+KzaLxaPNDkxDNmE2ngzLHV5VCkwjjzkWBYYv2T//LQBSykBLN3/6RGoPuT3Z43iUMqOTBrMZlnl+YQJIie+G50beldqrfJAXYBPOPm6jxru+xn/Z3BXDcNypGiWdRzL8WYG59cem78BnSlYb+n5J6GltybzJF6y7NEZSO4pblBMa7fWE8tD4AzOZMx9hKCjfevm3OjmAXPafGddh/htBNeT4Ff1t5pQMNLzQ9y8XGtHUsQe7OJHuZC8SO/lEnoQymVk6wa8hiBVI5V2KqQ==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=u+D/TL5QjFu/h0rY0LsaIa8hlGBGKNU5h76rsQ/STgk=;\n b=UUMiapqlQ3tTPjoEGGmR+TejHSCxGYMtm9mdowsTgxyGxA2SbuVXuUQl0BiOw1gyChuQ9v4kqKbTjKtRL7xD8sElW4jXEQep9N5uEooGWInGu2I1NWezdXa4Ak9ni4Dd8LIZwkuGmX/bS7D7Jc6VA7T5sbgpI+20roYm/NUagKPratv4qdu2TVuhkSlJdKC/ZweDxLX7u+R10uF7ciTe07AspgXLsRDOK6KgGE1RFEZo+3JI7zn7a1HNydGHO/1LJx/RrzvAUF3KklC7t/w5EQm9O1bxBlyefJfo8Hl8MDHwuA2lGHaNaihmJfbMDsN9z3FMnOUki8PisN3uo4z36g==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.112.34) smtp.rcpttodomain=monjalon.net smtp.mailfrom=nvidia.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=u+D/TL5QjFu/h0rY0LsaIa8hlGBGKNU5h76rsQ/STgk=;\n b=f21bQpYqgvSXwdaezKmp/dTVrEHbr4wp6asOyP9/JeT5zqCnpQM0uEum0aTR+WRExCu0X1UZ3fsD7rGcqosGdCecXqizwvGZUY1Q2TwPOlSV50/Oa+aCOKRUhxqdY/V6oaZPc9ka2btbyrX2NL76MYyMbnvCp39V6KQx6QUWiWnR+g3mpyph2zvmdM21oX2+Sc/PbxrhlKNBKn3H75nY87njEpwGl/C9eyFjuAtmncMpMcZY4R3/9/QMvEK4oydVfCFXFEjfijoPqix/xwttQDceoFm/28vHd/eRtGEf8/vFxbuZH7ipooUBDkjJ+r/mNTrhepTezI4Nc5cV5bQmXA==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.112.34)\n smtp.mailfrom=nvidia.com; monjalon.net; dkim=none (message not signed)\n header.d=none;monjalon.net; dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.112.34 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.112.34; helo=mail.nvidia.com;",
        "From": "Matan Azrad <matan@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<matan@nvidia.com>, <gakhil@marvell.com>, <suanmingm@nvidia.com>, \"Thomas\n Monjalon\" <thomas@monjalon.net>, Shiri Kuzin <shirik@nvidia.com>",
        "Date": "Wed, 5 May 2021 00:08:49 +0300",
        "Message-ID": "<20210504210857.3398397-8-matan@nvidia.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20210504210857.3398397-1-matan@nvidia.com>",
        "References": "<20210429154712.2820159-1-matan@nvidia.com>\n <20210504210857.3398397-1-matan@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[172.20.145.6]",
        "X-ClientProxiedBy": "HQMAIL111.nvidia.com (172.20.187.18) To\n HQMAIL107.nvidia.com (172.20.187.13)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "9d11a482-4a9a-4e2f-11d4-08d90f40eb94",
        "X-MS-TrafficTypeDiagnostic": "BN6PR1201MB0145:",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "\n <BN6PR1201MB0145F102476079FB332AC3C1DF5A9@BN6PR1201MB0145.namprd12.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:216;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 7LqkzOEtpsfO09TW4++sizkkE2mh6meSYv6xp2guZUqAF9cyR7tfQCYHbCGByeKZ5XoGWvojQkmEjzPWI5JN7sv2DZ2Es6KlMPbPPCpEDWHB3IAEMV+6b57roOcidCIF0R37PFAR6+G+g2G0Sg62u6aaTQwsOkP/vvlkV61LpvrK5np9JRGAtLDLrzHYlCBkzGqDwqJeDjp4YAb70eMR41TBR13NWJTsrBZw8hzOBplYlckJiukrMLIAG00ew9vJ5tSrV02lSoNfUWD8NyQsRzi9Nbf1i7lGERQSCame3qz1H/vwqJ5pktjXLTtFBEszsg8KjF7heNm1lKAShY6jP4JWwMABnLUFUf7ZvufXeJ+omZHcs9DMTdNz8FFzU5ne7zPzXq+9T4O9ViiMek9laBRMGI7kvXCtMS3JE+vTdB7nA65MTkbIDNTpCb1df0hmrdDKVHGzSYvfEmdWBDr7YEpGv6HX1ygQ+FxDYqcm3NyCpztu0x42H+jrbWqabUg5GX1ysDwQ4dD/F6FGv96Rlva/22xecCNofMKkL+6kFi1qmPsnIY/ZIjZQzgIQ9I6/xXE8pPTc0ROg7AKz60btTtVNoIGOXudgIzOlBEViye1t1o8+L9TemKVQzNARExuieWpbH+WHqSt9bu9l5GF8vw==",
        "X-Forefront-Antispam-Report": "CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE;\n SFS:(4636009)(39860400002)(396003)(346002)(376002)(136003)(46966006)(36840700001)(6916009)(82740400003)(70206006)(2906002)(356005)(36860700001)(36756003)(4326008)(7696005)(1076003)(47076005)(107886003)(83380400001)(6666004)(54906003)(70586007)(478600001)(316002)(26005)(2616005)(6286002)(16526019)(186003)(86362001)(5660300002)(336012)(82310400003)(36906005)(7636003)(8676002)(8936002)(55016002)(426003);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "04 May 2021 21:09:35.2650 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 9d11a482-4a9a-4e2f-11d4-08d90f40eb94",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT053.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN6PR1201MB0145",
        "Subject": "[dpdk-dev] [PATCH v3 07/15] crypto/mlx5: add memory region\n management",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "From: Shiri Kuzin <shirik@nvidia.com>\n\nMellanox user space drivers don't deal with physical addresses as part\nof a memory protection mechanism.\nThe device translates the given virtual address to a physical address\nusing the given memory key as an address space identifier.\nThat's why any mbuf virtual address is moved directly to the HW\ndescriptor(WQE).\n\nThe mapping between the virtual address to the physical address is saved\nin MR configured by the kernel to the HW.\n\nEach MR has a key that should also be moved to the WQE by the SW.\n\nWhen the SW sees an unmapped address, it extends the address range and\ncreates a MR using a system call.\n\nAdd memory region cache management:\n\t- 2 level cache per queue-pair - no locks.\n\t- 1 shared cache between all the queues using a lock.\n\nUsing this way, the MR key search per data-path address is optimized.\n\nSigned-off-by: Shiri Kuzin <shirik@nvidia.com>\nAcked-by: Matan Azrad <matan@nvidia.com>\n---\n drivers/crypto/mlx5/mlx5_crypto.c | 20 ++++++++++++++++++++\n drivers/crypto/mlx5/mlx5_crypto.h |  3 +++\n 2 files changed, 23 insertions(+)",
    "diff": "diff --git a/drivers/crypto/mlx5/mlx5_crypto.c b/drivers/crypto/mlx5/mlx5_crypto.c\nindex 538fe5ce56..b95aea0068 100644\n--- a/drivers/crypto/mlx5/mlx5_crypto.c\n+++ b/drivers/crypto/mlx5/mlx5_crypto.c\n@@ -209,6 +209,7 @@ mlx5_crypto_queue_pair_release(struct rte_cryptodev *dev, uint16_t qp_id)\n \t\tclaim_zero(mlx5_glue->devx_umem_dereg(qp->umem_obj));\n \tif (qp->umem_buf != NULL)\n \t\trte_free(qp->umem_buf);\n+\tmlx5_mr_btree_free(&qp->mr_ctrl.cache_bh);\n \tmlx5_devx_cq_destroy(&qp->cq_obj);\n \trte_free(qp);\n \tdev->data->queue_pairs[qp_id] = NULL;\n@@ -288,6 +289,13 @@ mlx5_crypto_queue_pair_setup(struct rte_cryptodev *dev, uint16_t qp_id,\n \t\tDRV_LOG(ERR, \"Failed to register QP umem.\");\n \t\tgoto error;\n \t}\n+\tif (mlx5_mr_btree_init(&qp->mr_ctrl.cache_bh, MLX5_MR_BTREE_CACHE_N,\n+\t\t\t       priv->dev_config.socket_id) != 0) {\n+\t\tDRV_LOG(ERR, \"Cannot allocate MR Btree for qp %u.\",\n+\t\t\t(uint32_t)qp_id);\n+\t\trte_errno = ENOMEM;\n+\t\tgoto error;\n+\t}\n \tattr.pd = priv->pdn;\n \tattr.uar_index = mlx5_os_get_devx_uar_page_id(priv->uar);\n \tattr.cqn = qp->cq_obj.cq->id;\n@@ -476,6 +484,17 @@ mlx5_crypto_pci_probe(struct rte_pci_driver *pci_drv,\n \t\tclaim_zero(mlx5_glue->close_device(priv->ctx));\n \t\treturn -1;\n \t}\n+\tif (mlx5_mr_btree_init(&priv->mr_scache.cache,\n+\t\t\t     MLX5_MR_BTREE_CACHE_N * 2, rte_socket_id()) != 0) {\n+\t\tDRV_LOG(ERR, \"Failed to allocate shared cache MR memory.\");\n+\t\tmlx5_crypto_hw_global_release(priv);\n+\t\trte_cryptodev_pmd_destroy(priv->crypto_dev);\n+\t\tclaim_zero(mlx5_glue->close_device(priv->ctx));\n+\t\trte_errno = ENOMEM;\n+\t\treturn -rte_errno;\n+\t}\n+\tpriv->mr_scache.reg_mr_cb = mlx5_common_verbs_reg_mr;\n+\tpriv->mr_scache.dereg_mr_cb = mlx5_common_verbs_dereg_mr;\n \tpthread_mutex_lock(&priv_list_lock);\n \tTAILQ_INSERT_TAIL(&mlx5_crypto_priv_list, priv, next);\n \tpthread_mutex_unlock(&priv_list_lock);\n@@ -495,6 +514,7 @@ mlx5_crypto_pci_remove(struct rte_pci_device *pdev)\n \t\tTAILQ_REMOVE(&mlx5_crypto_priv_list, priv, next);\n \tpthread_mutex_unlock(&priv_list_lock);\n \tif (priv) {\n+\t\tmlx5_mr_release_cache(&priv->mr_scache);\n \t\tmlx5_crypto_hw_global_release(priv);\n \t\trte_cryptodev_pmd_destroy(priv->crypto_dev);\n \t\tclaim_zero(mlx5_glue->close_device(priv->ctx));\ndiff --git a/drivers/crypto/mlx5/mlx5_crypto.h b/drivers/crypto/mlx5/mlx5_crypto.h\nindex f5313b89f2..397267d249 100644\n--- a/drivers/crypto/mlx5/mlx5_crypto.h\n+++ b/drivers/crypto/mlx5/mlx5_crypto.h\n@@ -12,6 +12,7 @@\n \n #include <mlx5_common_utils.h>\n #include <mlx5_common_devx.h>\n+#include <mlx5_common_mr.h>\n \n #define MLX5_CRYPTO_DEK_HTABLE_SZ (1 << 11)\n #define MLX5_CRYPTO_KEY_LENGTH 80\n@@ -27,6 +28,7 @@ struct mlx5_crypto_priv {\n \tstruct ibv_pd *pd;\n \tstruct mlx5_hlist *dek_hlist; /* Dek hash list. */\n \tstruct rte_cryptodev_config dev_config;\n+\tstruct mlx5_mr_share_cache mr_scache; /* Global shared MR cache. */\n };\n \n struct mlx5_crypto_qp {\n@@ -36,6 +38,7 @@ struct mlx5_crypto_qp {\n \tvoid *umem_buf;\n \tvolatile uint32_t *db_rec;\n \tstruct rte_crypto_op **ops;\n+\tstruct mlx5_mr_ctrl mr_ctrl;\n };\n \n struct mlx5_crypto_dek {\n",
    "prefixes": [
        "v3",
        "07/15"
    ]
}