get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 95071,
    "url": "https://patches.dpdk.org/api/patches/95071/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210630124609.8711-18-suanmingm@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": "<20210630124609.8711-18-suanmingm@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210630124609.8711-18-suanmingm@nvidia.com",
    "date": "2021-06-30T12:46:04",
    "name": "[v2,17/22] net/mlx5: optimize hash list table allocate on demand",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a905e84779df00410783406a3dce6367c009419f",
    "submitter": {
        "id": 1887,
        "url": "https://patches.dpdk.org/api/people/1887/?format=api",
        "name": "Suanming Mou",
        "email": "suanmingm@nvidia.com"
    },
    "delegate": {
        "id": 3268,
        "url": "https://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210630124609.8711-18-suanmingm@nvidia.com/mbox/",
    "series": [
        {
            "id": 17549,
            "url": "https://patches.dpdk.org/api/series/17549/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17549",
            "date": "2021-06-30T12:45:47",
            "name": "net/mlx5: insertion rate optimization",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/17549/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/95071/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/95071/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 F2E55A0A0F;\n\tWed, 30 Jun 2021 14:48:38 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DE38E412CA;\n\tWed, 30 Jun 2021 14:47:09 +0200 (CEST)",
            "from NAM12-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam12on2071.outbound.protection.outlook.com [40.107.244.71])\n by mails.dpdk.org (Postfix) with ESMTP id 474D741274\n for <dev@dpdk.org>; Wed, 30 Jun 2021 14:47:06 +0200 (CEST)",
            "from BN6PR1701CA0013.namprd17.prod.outlook.com\n (2603:10b6:405:15::23) by CH2PR12MB3781.namprd12.prod.outlook.com\n (2603:10b6:610:27::11) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.20; Wed, 30 Jun\n 2021 12:47:03 +0000",
            "from BN8NAM11FT045.eop-nam11.prod.protection.outlook.com\n (2603:10b6:405:15:cafe::1e) by BN6PR1701CA0013.outlook.office365.com\n (2603:10b6:405:15::23) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.21 via Frontend\n Transport; Wed, 30 Jun 2021 12:47:03 +0000",
            "from mail.nvidia.com (216.228.112.34) by\n BN8NAM11FT045.mail.protection.outlook.com (10.13.177.47) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4287.22 via Frontend Transport; Wed, 30 Jun 2021 12:47:02 +0000",
            "from nvidia.com (172.20.187.6) by HQMAIL107.nvidia.com\n (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 30 Jun\n 2021 12:46:56 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=YsCV27Ehye0882yFQEY1RoiO+SWOSRsy+N4cPAdr3HNqIaRsm1ljuhmmM/DiN85gt287f3gEuBSC8XmZn4qFl1PKrUwVxq+x12xEPXZuL7XR8/w+hQ0Uw7WLFIwjhnJCYASfWwcDsgrHfJCnoCsswCozqYG573WHdrIhotaqp1mxAkUs5hTDtS8NEVsEHEppq13jfKMbDqvlvgLDi4Yh+LoilD8mnpynLX538JtFwppPkinkNb+WcDzqrWbsPTTQ3J8n1ADkiJ0xT33RBIzt482KLK9VuNviG0+zLlkG18PwhvkCSC+wns2olDLnMHQAvQ6QjOXumCrpa7PD1UbWZQ==",
        "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=NszVfvMHpoFaOc8/OLCdUQaZ3BwrJ8BBfs5qAKul5oM=;\n b=SngZxamfudSduGIlJfoR/iGTCc/pvTMuaVdolU8k4Q+D4zLVCzu9hA2LFtZ2XHAYdmNzM3mRa/HsxDC6iRBRPhj6wDoZNM/w8apeAEwoemjRw4nmfM8C6Pq21QHqjT4J/FoW7A3PvA8actGM0c6P9Kx9+mx33R8vvRGxbtzk/8HcxsAs3i5eHCxBQVucUyLRlLiqL8uvFHZT17hwdVf99+sa8dkjNIbvcuYIWOy/DsqLc0dK4+eArGgJNqZ5ssmttiHX0vjVokQS+4ImFpgfrEFFz8jLuXiqyO3qFeUROLTcWHs9HtfT3Re7uxl8PEQEzkao0FucmvNOX5X99W8/8w==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.112.34) smtp.rcpttodomain=dpdk.org 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=NszVfvMHpoFaOc8/OLCdUQaZ3BwrJ8BBfs5qAKul5oM=;\n b=BKOBvzq48bFTRYWF5rXXZvsn5UPjwbvYLJlsItnyVmzuPKlS3oVIw/xMblCldeJfv5+ZCi4HDOCInPwiX+/vHe+B4U7I/3q1HySoqEaZJHy5LWLbpGyZY+XqHUWsZqf8NQ8DXeR6/gJzU5a4bui3wVe+LF2b3qO0QcPfGuhLEbCOt1RLpc5ra6xIMsaS55ynCRvgcWypM6ewSVzu2RM/Sjolv1uJHQmGGCyrCXZHO8FlCGE7wGeq2D7+IRejYRlDT1HDE5IWJNkABl5FVxtQSECaK2oiCvN8pmKp+17hqlnLk2nqfCIuZIYbGHTx34ciOCsR5yNRewLSPLn5X7Y/Rg==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.112.34)\n smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed)\n header.d=none;dpdk.org; 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": "Suanming Mou <suanmingm@nvidia.com>",
        "To": "<viacheslavo@nvidia.com>, <matan@nvidia.com>",
        "CC": "<rasland@nvidia.com>, <orika@nvidia.com>, <dev@dpdk.org>",
        "Date": "Wed, 30 Jun 2021 15:46:04 +0300",
        "Message-ID": "<20210630124609.8711-18-suanmingm@nvidia.com>",
        "X-Mailer": "git-send-email 2.18.1",
        "In-Reply-To": "<20210630124609.8711-1-suanmingm@nvidia.com>",
        "References": "<20210527093403.1153127-1-suanmingm@nvidia.com>\n <20210630124609.8711-1-suanmingm@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[172.20.187.6]",
        "X-ClientProxiedBy": "HQMAIL101.nvidia.com (172.20.187.10) To\n HQMAIL107.nvidia.com (172.20.187.13)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "cac2ad20-32ed-4aab-1a8c-08d93bc528c0",
        "X-MS-TrafficTypeDiagnostic": "CH2PR12MB3781:",
        "X-Microsoft-Antispam-PRVS": "\n <CH2PR12MB3781CABB9263B8F049FA792FC1019@CH2PR12MB3781.namprd12.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:6;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 2U0J0wsD7qSPk9rl/F73vSQNtabtfTJ4UArmLq5pL01H4sgP12PsXOy9DIE81lfc+WZ8mdnu0h+2h014i7x7lDWQmGo10uC8WmceJXWfR/nZGPpbKtE9/w7BHPV7P+s/h9SLz47wPsInWPyA+LfBiOgEN2KBDmiGEbdyQd1Cd4zkzwBjWPGQsyAq9ELhNtP0r6Dz47/yejGDZnwEIk26A/LR8xTiXooMMR8VrbtBDDAJbSDhWHMg9p7PyUrJmZRKTu+QW+vYLkAcFiyvqtLpq1ldcyJlaOOAYPgL1sK6sKj2vJ8TqF+IS4mwOO7ACPQjB9MsE2yPMqr0HUxd7CJPqXi/QpMVj837WstTyK3VR40zuOoF+4gFz85NrwmEj51gkZL2v63+UhgDVIfb57PnpQm9cRHuFE3rQ3H4agJo5ZO08Ee8pdIGm2gJZl8yy+ea2YNwH3AvJUm1FQOc15nYVw6SQ1/s1l23NsssWyuS2geMOdzBHtHrgA6oktkOeUcbzT+bhyQaiE4CYHYD6CJMeAIYori3xjdw/vbl+W2dgoQ+Qw7fl9chZR4dKIuyuJJwsfGVYvpDE2ROXU3RfyGpmJOtjTMW/EBIOzVXmLhdi2SzaNFJD+4T0RZcc1ZqqVzE67dFYr2fWu+VQdZHWbMs4Z2H61cfmf3W/9Dl2cIPJ0U3Kje3iRjk0mXEuIOdkC4/cNRPjQW+hA7QQqEH30SWaQ==",
        "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)(376002)(396003)(39860400002)(136003)(346002)(46966006)(36840700001)(5660300002)(7696005)(26005)(2906002)(36860700001)(54906003)(110136005)(55016002)(4326008)(316002)(16526019)(36756003)(6286002)(1076003)(47076005)(186003)(6636002)(70586007)(70206006)(6666004)(83380400001)(336012)(2616005)(426003)(478600001)(86362001)(8936002)(8676002)(82310400003)(82740400003)(356005)(7636003);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "30 Jun 2021 12:47:02.6141 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n cac2ad20-32ed-4aab-1a8c-08d93bc528c0",
        "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 BN8NAM11FT045.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "CH2PR12MB3781",
        "Subject": "[dpdk-dev] [PATCH v2 17/22] net/mlx5: optimize hash list table\n allocate on demand",
        "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": "Currently, all the hash list tables are allocated during start up.\nSince different applications may only use dedicated limited actions,\noptimized the hash list table allocate on demand will save initial\nmemory.\n\nThis commit optimizes hash list table allocate on demand.\n\nSigned-off-by: Suanming Mou <suanmingm@nvidia.com>\nAcked-by: Matan Azrad <matan@nvidia.com>\n---\n drivers/net/mlx5/linux/mlx5_os.c   | 44 +----------------\n drivers/net/mlx5/mlx5_defs.h       |  6 +++\n drivers/net/mlx5/mlx5_flow_dv.c    | 79 ++++++++++++++++++++++++++++--\n drivers/net/mlx5/windows/mlx5_os.c |  2 -\n 4 files changed, 82 insertions(+), 49 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c\nindex a82dc4db00..75324e35d8 100644\n--- a/drivers/net/mlx5/linux/mlx5_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_os.c\n@@ -50,8 +50,6 @@\n #include \"mlx5_nl.h\"\n #include \"mlx5_devx.h\"\n \n-#define MLX5_TAGS_HLIST_ARRAY_SIZE\t(1 << 15)\n-\n #ifndef HAVE_IBV_MLX5_MOD_MPW\n #define MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED (1 << 2)\n #define MLX5DV_CONTEXT_FLAGS_ENHANCED_MPW (1 << 3)\n@@ -312,46 +310,6 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv)\n \t\t\t\t\t      flow_dv_dest_array_clone_free_cb);\n \tif (!sh->dest_array_list)\n \t\tgoto error;\n-\t/* Create tags hash list table. */\n-\tsnprintf(s, sizeof(s), \"%s_tags\", sh->ibdev_name);\n-\tsh->tag_table = mlx5_hlist_create(s, MLX5_TAGS_HLIST_ARRAY_SIZE, false,\n-\t\t\t\t\t  false, sh, flow_dv_tag_create_cb,\n-\t\t\t\t\t  flow_dv_tag_match_cb,\n-\t\t\t\t\t  flow_dv_tag_remove_cb,\n-\t\t\t\t\t  flow_dv_tag_clone_cb,\n-\t\t\t\t\t  flow_dv_tag_clone_free_cb);\n-\tif (!sh->tag_table) {\n-\t\tDRV_LOG(ERR, \"tags with hash creation failed.\");\n-\t\terr = ENOMEM;\n-\t\tgoto error;\n-\t}\n-\tsnprintf(s, sizeof(s), \"%s_hdr_modify\", sh->ibdev_name);\n-\tsh->modify_cmds = mlx5_hlist_create(s, MLX5_FLOW_HDR_MODIFY_HTABLE_SZ,\n-\t\t\t\t\t    true, false, sh,\n-\t\t\t\t\t    flow_dv_modify_create_cb,\n-\t\t\t\t\t    flow_dv_modify_match_cb,\n-\t\t\t\t\t    flow_dv_modify_remove_cb,\n-\t\t\t\t\t    flow_dv_modify_clone_cb,\n-\t\t\t\t\t    flow_dv_modify_clone_free_cb);\n-\tif (!sh->modify_cmds) {\n-\t\tDRV_LOG(ERR, \"hdr modify hash creation failed\");\n-\t\terr = ENOMEM;\n-\t\tgoto error;\n-\t}\n-\tsnprintf(s, sizeof(s), \"%s_encaps_decaps\", sh->ibdev_name);\n-\tsh->encaps_decaps = mlx5_hlist_create(s,\n-\t\t\t\t\t      MLX5_FLOW_ENCAP_DECAP_HTABLE_SZ,\n-\t\t\t\t\t      true, true, sh,\n-\t\t\t\t\t      flow_dv_encap_decap_create_cb,\n-\t\t\t\t\t      flow_dv_encap_decap_match_cb,\n-\t\t\t\t\t      flow_dv_encap_decap_remove_cb,\n-\t\t\t\t\t      flow_dv_encap_decap_clone_cb,\n-\t\t\t\t\t     flow_dv_encap_decap_clone_free_cb);\n-\tif (!sh->encaps_decaps) {\n-\t\tDRV_LOG(ERR, \"encap decap hash creation failed\");\n-\t\terr = ENOMEM;\n-\t\tgoto error;\n-\t}\n #endif\n #ifdef HAVE_MLX5DV_DR\n \tvoid *domain;\n@@ -396,7 +354,7 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv)\n \t\tgoto error;\n \t}\n #endif\n-\tif (!sh->tunnel_hub)\n+\tif (!sh->tunnel_hub && priv->config.dv_miss_info)\n \t\terr = mlx5_alloc_tunnel_hub(sh);\n \tif (err) {\n \t\tDRV_LOG(ERR, \"mlx5_alloc_tunnel_hub failed err=%d\", err);\ndiff --git a/drivers/net/mlx5/mlx5_defs.h b/drivers/net/mlx5/mlx5_defs.h\nindex ca67ce8213..fe86bb40d3 100644\n--- a/drivers/net/mlx5/mlx5_defs.h\n+++ b/drivers/net/mlx5/mlx5_defs.h\n@@ -188,6 +188,12 @@\n /* Size of the simple hash table for encap decap table. */\n #define MLX5_FLOW_ENCAP_DECAP_HTABLE_SZ (1 << 12)\n \n+/* Size of the hash table for tag table. */\n+#define MLX5_TAGS_HLIST_ARRAY_SIZE\t(1 << 15)\n+\n+/* Size fo the hash table for SFT table. */\n+#define MLX5_FLOW_SFT_HLIST_ARRAY_SIZE\t4096\n+\n /* Hairpin TX/RX queue configuration parameters. */\n #define MLX5_HAIRPIN_QUEUE_STRIDE 6\n #define MLX5_HAIRPIN_JUMBO_LOG_SIZE (14 + 2)\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex f79c60e489..fe610594c5 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -310,6 +310,41 @@ mlx5_flow_tunnel_ip_check(const struct rte_flow_item *item __rte_unused,\n \t}\n }\n \n+static inline struct mlx5_hlist *\n+flow_dv_hlist_prepare(struct mlx5_dev_ctx_shared *sh, struct mlx5_hlist **phl,\n+\t\t     const char *name, uint32_t size, bool direct_key,\n+\t\t     bool lcores_share, void *ctx,\n+\t\t     mlx5_list_create_cb cb_create,\n+\t\t     mlx5_list_match_cb cb_match,\n+\t\t     mlx5_list_remove_cb cb_remove,\n+\t\t     mlx5_list_clone_cb cb_clone,\n+\t\t     mlx5_list_clone_free_cb cb_clone_free)\n+{\n+\tstruct mlx5_hlist *hl;\n+\tstruct mlx5_hlist *expected = NULL;\n+\tchar s[MLX5_NAME_SIZE];\n+\n+\thl = __atomic_load_n(phl, __ATOMIC_SEQ_CST);\n+\tif (likely(hl))\n+\t\treturn hl;\n+\tsnprintf(s, sizeof(s), \"%s_%s\", sh->ibdev_name, name);\n+\thl = mlx5_hlist_create(s, size, direct_key, lcores_share,\n+\t\t\tctx, cb_create, cb_match, cb_remove, cb_clone,\n+\t\t\tcb_clone_free);\n+\tif (!hl) {\n+\t\tDRV_LOG(ERR, \"%s hash creation failed\", name);\n+\t\trte_errno = ENOMEM;\n+\t\treturn NULL;\n+\t}\n+\tif (!__atomic_compare_exchange_n(phl, &expected, hl, false,\n+\t\t\t\t\t __ATOMIC_SEQ_CST,\n+\t\t\t\t\t __ATOMIC_SEQ_CST)) {\n+\t\tmlx5_hlist_destroy(hl);\n+\t\thl = __atomic_load_n(phl, __ATOMIC_SEQ_CST);\n+\t}\n+\treturn hl;\n+}\n+\n /* Update VLAN's VID/PCP based on input rte_flow_action.\n  *\n  * @param[in] action\n@@ -3724,8 +3759,20 @@ flow_dv_encap_decap_resource_register\n \t\t.error = error,\n \t\t.data = resource,\n \t};\n+\tstruct mlx5_hlist *encaps_decaps;\n \tuint64_t key64;\n \n+\tencaps_decaps = flow_dv_hlist_prepare(sh, &sh->encaps_decaps,\n+\t\t\t\t\"encaps_decaps\",\n+\t\t\t\tMLX5_FLOW_ENCAP_DECAP_HTABLE_SZ,\n+\t\t\t\ttrue, true, sh,\n+\t\t\t\tflow_dv_encap_decap_create_cb,\n+\t\t\t\tflow_dv_encap_decap_match_cb,\n+\t\t\t\tflow_dv_encap_decap_remove_cb,\n+\t\t\t\tflow_dv_encap_decap_clone_cb,\n+\t\t\t\tflow_dv_encap_decap_clone_free_cb);\n+\tif (unlikely(!encaps_decaps))\n+\t\treturn -rte_errno;\n \tresource->flags = dev_flow->dv.group ? 0 : 1;\n \tkey64 =  __rte_raw_cksum(&encap_decap_key.v32,\n \t\t\t\t sizeof(encap_decap_key.v32), 0);\n@@ -3733,7 +3780,7 @@ flow_dv_encap_decap_resource_register\n \t    MLX5DV_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TUNNEL_TO_L2 &&\n \t    resource->size)\n \t\tkey64 = __rte_raw_cksum(resource->buf, resource->size, key64);\n-\tentry = mlx5_hlist_register(sh->encaps_decaps, key64, &ctx);\n+\tentry = mlx5_hlist_register(encaps_decaps, key64, &ctx);\n \tif (!entry)\n \t\treturn -rte_errno;\n \tresource = container_of(entry, typeof(*resource), entry);\n@@ -5705,8 +5752,20 @@ flow_dv_modify_hdr_resource_register\n \t\t.error = error,\n \t\t.data = resource,\n \t};\n+\tstruct mlx5_hlist *modify_cmds;\n \tuint64_t key64;\n \n+\tmodify_cmds = flow_dv_hlist_prepare(sh, &sh->modify_cmds,\n+\t\t\t\t\"hdr_modify\",\n+\t\t\t\tMLX5_FLOW_HDR_MODIFY_HTABLE_SZ,\n+\t\t\t\ttrue, false, sh,\n+\t\t\t\tflow_dv_modify_create_cb,\n+\t\t\t\tflow_dv_modify_match_cb,\n+\t\t\t\tflow_dv_modify_remove_cb,\n+\t\t\t\tflow_dv_modify_clone_cb,\n+\t\t\t\tflow_dv_modify_clone_free_cb);\n+\tif (unlikely(!modify_cmds))\n+\t\treturn -rte_errno;\n \tresource->root = !dev_flow->dv.group;\n \tif (resource->actions_num > flow_dv_modify_hdr_action_max(dev,\n \t\t\t\t\t\t\t\tresource->root))\n@@ -5714,7 +5773,7 @@ flow_dv_modify_hdr_resource_register\n \t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION, NULL,\n \t\t\t\t\t  \"too many modify header items\");\n \tkey64 = __rte_raw_cksum(&resource->ft_type, key_len, 0);\n-\tentry = mlx5_hlist_register(sh->modify_cmds, key64, &ctx);\n+\tentry = mlx5_hlist_register(modify_cmds, key64, &ctx);\n \tif (!entry)\n \t\treturn -rte_errno;\n \tresource = container_of(entry, typeof(*resource), entry);\n@@ -10493,8 +10552,20 @@ flow_dv_tag_resource_register\n \t\t\t\t\t.error = error,\n \t\t\t\t\t.data = &tag_be24,\n \t\t\t\t\t};\n-\n-\tentry = mlx5_hlist_register(priv->sh->tag_table, tag_be24, &ctx);\n+\tstruct mlx5_hlist *tag_table;\n+\n+\ttag_table = flow_dv_hlist_prepare(priv->sh, &priv->sh->tag_table,\n+\t\t\t\t      \"tags\",\n+\t\t\t\t      MLX5_TAGS_HLIST_ARRAY_SIZE,\n+\t\t\t\t      false, false, priv->sh,\n+\t\t\t\t      flow_dv_tag_create_cb,\n+\t\t\t\t      flow_dv_tag_match_cb,\n+\t\t\t\t      flow_dv_tag_remove_cb,\n+\t\t\t\t      flow_dv_tag_clone_cb,\n+\t\t\t\t      flow_dv_tag_clone_free_cb);\n+\tif (unlikely(!tag_table))\n+\t\treturn -rte_errno;\n+\tentry = mlx5_hlist_register(tag_table, tag_be24, &ctx);\n \tif (entry) {\n \t\tresource = container_of(entry, struct mlx5_flow_dv_tag_resource,\n \t\t\t\t\tentry);\ndiff --git a/drivers/net/mlx5/windows/mlx5_os.c b/drivers/net/mlx5/windows/mlx5_os.c\nindex af2f684648..0e6f7003b0 100644\n--- a/drivers/net/mlx5/windows/mlx5_os.c\n+++ b/drivers/net/mlx5/windows/mlx5_os.c\n@@ -30,8 +30,6 @@\n #include \"mlx5_flow.h\"\n #include \"mlx5_devx.h\"\n \n-#define MLX5_TAGS_HLIST_ARRAY_SIZE 8192\n-\n static const char *MZ_MLX5_PMD_SHARED_DATA = \"mlx5_pmd_shared_data\";\n \n /* Spinlock for mlx5_shared_data allocation. */\n",
    "prefixes": [
        "v2",
        "17/22"
    ]
}