get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 95681,
    "url": "http://patches.dpdk.org/api/patches/95681/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210712014654.32428-24-suanmingm@nvidia.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": "<20210712014654.32428-24-suanmingm@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210712014654.32428-24-suanmingm@nvidia.com",
    "date": "2021-07-12T01:46:51",
    "name": "[v5,23/26] net/mlx5: optimize hash list table allocate on demand",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "a905e84779df00410783406a3dce6367c009419f",
    "submitter": {
        "id": 1887,
        "url": "http://patches.dpdk.org/api/people/1887/?format=api",
        "name": "Suanming Mou",
        "email": "suanmingm@nvidia.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/20210712014654.32428-24-suanmingm@nvidia.com/mbox/",
    "series": [
        {
            "id": 17759,
            "url": "http://patches.dpdk.org/api/series/17759/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=17759",
            "date": "2021-07-12T01:46:29",
            "name": "net/mlx5: insertion rate optimization",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/17759/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/95681/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/95681/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 5A1EEA0C4B;\n\tMon, 12 Jul 2021 03:50:18 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 03F0941208;\n\tMon, 12 Jul 2021 03:48:17 +0200 (CEST)",
            "from NAM11-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam11on2053.outbound.protection.outlook.com [40.107.223.53])\n by mails.dpdk.org (Postfix) with ESMTP id A7FA0411E1\n for <dev@dpdk.org>; Mon, 12 Jul 2021 03:48:10 +0200 (CEST)",
            "from BN8PR04CA0055.namprd04.prod.outlook.com (2603:10b6:408:d4::29)\n by MN2PR12MB3680.namprd12.prod.outlook.com (2603:10b6:208:169::13)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.19; Mon, 12 Jul\n 2021 01:48:08 +0000",
            "from BN8NAM11FT024.eop-nam11.prod.protection.outlook.com\n (2603:10b6:408:d4:cafe::7c) by BN8PR04CA0055.outlook.office365.com\n (2603:10b6:408:d4::29) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20 via Frontend\n Transport; Mon, 12 Jul 2021 01:48:08 +0000",
            "from mail.nvidia.com (216.228.112.34) by\n BN8NAM11FT024.mail.protection.outlook.com (10.13.177.38) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4308.20 via Frontend Transport; Mon, 12 Jul 2021 01:48:08 +0000",
            "from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com\n (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 12 Jul\n 2021 01:47:50 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=PsjYsrPgEWqVXKCspj0tCpcv2QhhNkHWzNcveR29ATt5+gv1aqptf8QzXM2xa3SOVjWnzMeY8WqB7xw+lv+3ZPrixjexEbt2FVYzmfgpoxvwn6xm8rvB84MEzY/DLlmpqVkuiB9AsPZAvKVxQaVI1CswS9fx44PPIxcO1J3jKmzg6XwXj2NUkv4ebfmWXJDKS0IIBhNJPhPq8b35sK6J9GQFwI0W/E8OgEUckiLlQNovQWXwgO4ylZKyF+WGJzAUEHX4DBEpnyfG1w/KF0g5ZNPVzHgVUpMVV+gTfMAC7TlATzHWdgyqEarTpu474tVY143BgNwiVtUud4p04ROWuA==",
        "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=mNPU9rXuPiaQWNw1h5pgUtQknEFYoPsmbOo1ArJ2VjA=;\n b=Ocft4EJCYGRcQ0JA+GyfBsViT0N7dvMGK4VQmImhEbA9S43coQtNOHpgP6ohn4vFztEfh7hAf+oInk0Xiy0xHLxLx0Z3hQEJ3TDuz5Fd8OrjRrLolebX0++TihBQLLTr6FKRklZlaKs9piMX+6i8nwSFhTNEoUpucuKUdUBKKr/dxXY2FClhqz3soTE/v4Xo2Q/g64czSUNdw+S5QSlkHKD0Eavu3Q7OGBdn47zWqTozW44EgveKCQF8HoVAmzKKI0gSU1gcbPY/p1LaYXrc8VTEo6CGxfk7o5diA3znhK3wzS7/6ErfFYXgFXJNdKnY6b27ddddjgf7moQCbeH1zQ==",
        "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=mNPU9rXuPiaQWNw1h5pgUtQknEFYoPsmbOo1ArJ2VjA=;\n b=TCCGoSPUcGUyVL7AA1oKxu+gbynNIeD3B+lHuSeULLQIIqTIT5rwWj3CyIAeqr8IxTkvdCVIG6MGp6MMfHUvADQkQDPTBCDzyeVhVc3mIBiSn4Q+UxzCPG6Uq1zsxS0H1y7T1zciVHtjG3KoBfKkrcXORqsgiBXtMMaEosZOt2Px9iKhTYdWS6gStFMlPeGUnN+RkXi4WlTBkYQzSH35QHnSx2utnY1FKVWAwFIYXG8v/2MiX+u0t9vo60cXfbFy50H+syKsHIs23Z33LUZlmI3C8Q46hTM9dZv8eyXWVXMvmW3SG7GQr2tppv7PdlSX723gN/flWMSrB9KjwW5fpA==",
        "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": "Mon, 12 Jul 2021 04:46:51 +0300",
        "Message-ID": "<20210712014654.32428-24-suanmingm@nvidia.com>",
        "X-Mailer": "git-send-email 2.18.1",
        "In-Reply-To": "<20210712014654.32428-1-suanmingm@nvidia.com>",
        "References": "<20210527093403.1153127-1-suanmingm@nvidia.com>\n <20210712014654.32428-1-suanmingm@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[172.20.187.5]",
        "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": "e8105b2f-ef63-4ccb-df30-08d944d7198c",
        "X-MS-TrafficTypeDiagnostic": "MN2PR12MB3680:",
        "X-Microsoft-Antispam-PRVS": "\n <MN2PR12MB3680EA2816B9D7D07B2F4A71C1159@MN2PR12MB3680.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 vL+vGKGjGA4M+SZkdxcAxa6zEgNHz1bAIdy0i3qVWtF+plLMD7hrWZK3Sr5dm53xbhMfIDRCeRlvNARqgPNVC39aBWiOFSYmU83adYNQtp8vjhSfVkYeeNwaqwiSO7Gg2oMc3iYMoy4oPc+cMkc8w4fw4j10eDCkxoWChgivpTqGtwo9LSU2AWCMMcBVQkkDqQM7n2bqbMxks0oboBwNmZy2gMUHvexyibAq9pzU9yRC0BZ/9uSHAGjqKuJKAG2v6VuIOdEye4rG4LXZwMXin1otwA4B9fQKWq9PmPh/ebkLrMvNTxO9zBgct3LoWhRuMA+kQv6GZ6kVoJANrJHMx1LBvJl6vTQ578W41QNobG/xGCFtZW96EUNrtm+ZrIRbcOaJI8Udo0azQJP0cE3CpKZ6vFqjwCKM3Pwo7x2nogC8EsOc+qq+gx6np3UyvJX1sMHkiFC+facutDqogqdYOdqNWL80WOphU9v4KOqd0CXctRvodtvDtL+wmWGH7qYI5i6/wA6edGnQKPW85GBSpB8bnCyj6SoFlEX5Lc1xS2CQjA523LYbFkdqa6fiV2gaKyj0EZLmdkK+awXJA1Ohaqz8A39MdgFxgKs9GnDKSb52H9crV6fc+xV3wQxQcFSgurvndMC5u35GER+RVfg8xqgno1rcMOR8STudZiq7S8qwc0k7s3pz7RqCPrFWe+/xeQDlaTf9seqdRPAcvooZN3Dz1QS+CtO3N5icbTwjVb8=",
        "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)(136003)(376002)(396003)(346002)(39860400002)(46966006)(36840700001)(2906002)(426003)(36906005)(478600001)(36756003)(5660300002)(70586007)(47076005)(70206006)(55016002)(2616005)(336012)(6636002)(8936002)(36860700001)(4326008)(6286002)(34020700004)(186003)(82310400003)(1076003)(8676002)(7636003)(356005)(82740400003)(316002)(86362001)(16526019)(54906003)(7696005)(110136005)(83380400001)(26005);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "12 Jul 2021 01:48:08.4617 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n e8105b2f-ef63-4ccb-df30-08d944d7198c",
        "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 BN8NAM11FT024.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR12MB3680",
        "Subject": "[dpdk-dev] [PATCH v5 23/26] 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 969d265350..ec2f8a4aed 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 739c387c0a..5b8eb096ee 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -311,6 +311,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@@ -3730,8 +3765,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@@ -3739,7 +3786,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@@ -5745,8 +5792,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@@ -5754,7 +5813,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@@ -10537,8 +10596,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 a04f93e1d4..5da362a9d5 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": [
        "v5",
        "23/26"
    ]
}