From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 23793A0C4F; Mon, 12 Jul 2021 16:59:05 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D06544069D; Mon, 12 Jul 2021 16:59:04 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2055.outbound.protection.outlook.com [40.107.244.55]) by mails.dpdk.org (Postfix) with ESMTP id 8503C40685 for ; Mon, 12 Jul 2021 16:59:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RgLiQbnfLCfvdcs80ucDfxsimBrQ7G2iFCyd/RT1p/EjVk0cX1XpJ+kMerBaLXuLnibFrCgT8ONzHInetBmY9TBimhRh63/AK+Yo2Vo1jHQCyh0NsCgOlNw4lITb62VdTZGQXS3W2XW2iMCbVoy/Xs57q5oETdcGVcaSQiTHxvH53rc4plsuBLW1w0R2rM4Tr+vvE7jV/lp0hG+Asz1fMaz9mKR6qavDWGVf9TwWYkSlGHg3WJuWH/Ve4+soOLd7Q08zbySyycI+swxmExDCI3L8tALmlpyjJG7kRMnm5UPscZr44BDRrJPXTifEQR8vmlCzbKuA7wKYy3TW/hhSTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gea12wsWB6jgj0lTJWAx07w2ZxIYUCrsO2J4wz34zKQ=; b=Ke0i/tG4y51OQ9rH5HAyafQoi1T+VvmjAZI0GunxH9oc9rGJa5Rf07NzHrUsjj0brk+BMWWR64BuPFjZBczdnj94uC24tWRp08gA7nVxwgWPR4768GbmI3fYlnseUpcfR4XzBcnMZvxiV+NcnDIUL+Acrq/l+DITKgiEYEoIPpLJisMAhxlKQAApYh03ghxnM8CpImruBs0FbVP2chKVFpe3vWwiWyQORU7DcC8SfL5DiS+RhGX42V5NXpz5IPCOUv5wmejxMOZJfZQejk9qt6MMDArq8XvQ0az6WfUfAv+Ns4vQIkXmpJGSb9zhbE3lUV3DOloxGPracbvQtrMq9g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gea12wsWB6jgj0lTJWAx07w2ZxIYUCrsO2J4wz34zKQ=; b=KJshYMB7uB+sfVf/aAEQUrBkx6a24OEOqOJ3fDmoUZ7iEqT+p4iBp9MbJBr/J/TihLas/+dvYB5je1sZ3smvEm0QtERYAQnOBdEQ0d7AhQL7mAMSW2JTbXRQ06kp9KKDiM8iQQB50paar514Fot7uX0JawIF+zUMtfKWZ0iQME8gzgYmIQO1+zB1cCw9Cc98ojTMN1nJLbfxQAktyNCFUSjSOM10hVoRn7Kzop4iUm+TuevqfX8yGNKy6MuDFW/FZS5ltCYbnJqxJqfGoPmo82ohvQ1CVAg9ig9+EhK5SiAIVl4dBIROSc5HFZMLJwDrxlsie56FzPY78ylGhWrIWg== Received: from DM4PR12MB5054.namprd12.prod.outlook.com (2603:10b6:5:389::24) by DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.21; Mon, 12 Jul 2021 14:59:02 +0000 Received: from DM4PR12MB5054.namprd12.prod.outlook.com ([fe80::584f:2720:1100:666a]) by DM4PR12MB5054.namprd12.prod.outlook.com ([fe80::584f:2720:1100:666a%4]) with mapi id 15.20.4308.027; Mon, 12 Jul 2021 14:59:02 +0000 From: Raslan Darawsheh To: Suanming Mou , Slava Ovsiienko , Matan Azrad CC: Ori Kam , "dev@dpdk.org" Thread-Topic: [PATCH v5 14/26] common/mlx5: add list lcore share Thread-Index: AQHXdr/nBI2nL2TkmE+EmoOfHrLrfas/bxIw Date: Mon, 12 Jul 2021 14:59:01 +0000 Message-ID: References: <20210527093403.1153127-1-suanmingm@nvidia.com> <20210712014654.32428-1-suanmingm@nvidia.com> <20210712014654.32428-15-suanmingm@nvidia.com> In-Reply-To: <20210712014654.32428-15-suanmingm@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0439d4fc-02bb-488b-491f-08d9454595ff x-ms-traffictypediagnostic: DM4PR12MB5373: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:59; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8NuT/YKY5mwf7G0G9h2UXsQbBFsg+f1+Oo0QYjFRLOReVTidcYs0WRuYtFqkxTpX7f3dMBY1XsmD05DduuY38+7AgXFfiFtYbYoPKe2MODtOpClKlpvierZwb0YYYKAoiFTfAedBNs4jCGdRTYQFnGkLwCspI9dOrZ2P4nnceY7E5X60n9ElCMlpZfYRLPiy1+g2P/YmdAboW32PfaxqYvF2uhUS7IXaTxiRgzZLWnPTMXdRZIq005rTReYTMwugdHjwnkjbmXNnPWecvIUuhS8Q+85nb0zIWUtTL4x68RzaB3as9+uMKQZCqqSoPESGl3MDiPhmM/bG4YTU2zx2OipQ9zwAKax7guP2xkIp6nfTEgAsbaSDtJ9m6aAr79egxzoTxGsFQOspRNrulttg45PMggCtKy3Nv+Idbs+x9PFyqQFd2lFJK5qtRRZYeHqEjzOQyk2wZBsDnd9GRHzvmkq0kCkZXCh9R9RyXCC5eYqEEul6P50uzM3lk3+4g4Zz1nl8WMo2hiSaouvKsjEQOeX+QP0iARyanCPrLp+1xhux3haoqFX3HSv4swOGVvdsNIjB+pDOU0EVb/vO8B67lugtk/8OJopjp1pGzIv08x9tWUld7qO3wmsFS/Pkfaj2orvg2/1i2lz0ZAsNpBlJkQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5054.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(366004)(39860400002)(136003)(396003)(346002)(122000001)(6636002)(316002)(33656002)(52536014)(86362001)(71200400001)(83380400001)(8936002)(8676002)(54906003)(110136005)(7696005)(2906002)(38100700002)(30864003)(5660300002)(64756008)(66476007)(66446008)(66556008)(76116006)(186003)(4326008)(26005)(53546011)(66946007)(6506007)(9686003)(55016002)(478600001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: pEOHljuqBLZpa2JGwlkTed765kyBMCzPTPWL4jlD54bT9UC94gCO7ydkTA5XBGF+vu/OF3Uub7PQ6xkulvXIMmmpybGIzjjyLYnUrYbPTesg2fmaECNFmQKPd9IQdBOUJaRi/to3i12cDV3gO9PkB9XKsvVXRz3mi5IoitVN0k7J7hVntp4VVYBF7F2w4l5vN9oTo5ZKp/oeO0OWQcgxbZ/YeSyVJaKEwhdL9E6e3c0cpsBcrPBN/SPXAoKTcSYlNkqyqJHesqQoxDcs8f3xDoaY9apfB0dv64HCtuIzROfl9kCQIc6dSEUaG5aokJwghIEn8xYzyxCT/8dcztncsHwLeB0jgfqI/OKQUy2ZEJGC+Iko/Hx6ioMfUJiPwuYieCqvHVVvXxLR8ycZBaYsv6criBd6ezNn1ts0tvWIsNkVCT177olSJM7RkRJJQR/SgEZ7JpsxWRmwMM1rKvFLbYW3LlkGWs6HCzo2UePFcSDE3AegblD+/8ZL+nUsX9oTe6h7GwTMPm1W/5x+6k88UT//tBSWXm78Bcoqimy4LxD2N4DEd92MhIDEzBq1OPuxgHmwAlLbZhhCPgXcEtK/rooyKvPLCQp5Jyic+6F43aj5USDTnwO35O7/El6PEQkCOffOCSGbOGl+lJs82ehJWrh3beJtvzm9cPEHGcuYKIM4s4Dd+t3BiimYllgYLSHXPq0ZoyA1ZeMoOHTJCKnL1wQTtGLPRr7az8u7QWDd0O2heuRwSiJ3mVYv4qGXz3ta Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5054.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0439d4fc-02bb-488b-491f-08d9454595ff X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2021 14:59:01.9499 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hFDOFheTtaun8bAiBYvf/k3sVYILhjUpAew6wzbU3UWa+WUviGNlkTY2lOEUFBHB0hipULhG7qtJpyUa35jvZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5373 Subject: Re: [dpdk-dev] [PATCH v5 14/26] common/mlx5: add list lcore share X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" Hi Suanming, This patch will cause the following failure in compilation with CLANG : [1443/3183] Compiling C object drivers/libtmp_rte_common_mlx5.a.p/common_ml= x5_mlx5_common_utils.c.o FAILED: drivers/libtmp_rte_common_mlx5.a.p/common_mlx5_mlx5_common_utils.c.= o clang -Idrivers/libtmp_rte_common_mlx5.a.p -Idrivers -I../../root/dpdk/driv= ers -Idrivers/common/mlx5 -I../../root/dpdk/drivers/common/mlx5 -Idrivers/c= ommon/mlx5/linux -I../../root/dpdk/drivers/common/mlx5/linux -Ilib/hash -I.= ./../root/dpdk/lib/hash -I. -I../../root/dpdk -Iconfig -I../../root/dpdk/co= nfig -Ilib/eal/include -I../../root/dpdk/lib/eal/include -Ilib/eal/linux/in= clude -I../../root/dpdk/lib/eal/linux/include -Ilib/eal/x86/include -I../..= /root/dpdk/lib/eal/x86/include -Ilib/eal/common -I../../root/dpdk/lib/eal/c= ommon -Ilib/eal -I../../root/dpdk/lib/eal -Ilib/kvargs -I../../root/dpdk/li= b/kvargs -Ilib/metrics -I../../root/dpdk/lib/metrics -Ilib/telemetry -I../.= ./root/dpdk/lib/telemetry -Ilib/net -I../../root/dpdk/lib/net -Ilib/mbuf -I= ../../root/dpdk/lib/mbuf -Ilib/mempool -I../../root/dpdk/lib/mempool -Ilib/= ring -I../../root/dpdk/lib/ring -Ilib/rcu -I../../root/dpdk/lib/rcu -Ilib/p= ci -I../../root/dpdk/lib/pci -Idrivers/bus/pci -I../../root/dpdk/drivers/bu= s/pci -I../../root/dpdk/drivers/bus/pci/linux -I/usr/usr/include -Xclang -f= color-diagnostics -pipe -D_FILE_OFFSET_BITS=3D64 -Wall -Winvalid-pch -Werro= r -O2 -g -include rte_config.h -Wextra -Wcast-qual -Wdeprecated -Wformat -W= format-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-protot= ypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare= -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-address-of-packed-member = -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=3Dnative -DALLOW= _EXPERIMENTAL_API -DALLOW_INTERNAL_API -std=3Dc11 -Wno-strict-prototypes -D= _BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=3D600 -pedantic -DPEDANTIC -D= RTE_LOG_DEFAULT_LOGTYPE=3Dpmd.common.mlx5 -MD -MQ drivers/libtmp_rte_common= _mlx5.a.p/common_mlx5_mlx5_common_utils.c.o -MF drivers/libtmp_rte_common_m= lx5.a.p/common_mlx5_mlx5_common_utils.c.o.d -o drivers/libtmp_rte_common_ml= x5.a.p/common_mlx5_mlx5_common_utils.c.o -c ../../root/dpdk/drivers/common/= mlx5/mlx5_common_utils.c ../../root/dpdk/drivers/common/mlx5/mlx5_common_utils.c:152:6: error: varia= ble 'entry' is used uninitialized whenever 'if' condition is false [-Werror= ,-Wsometimes-uninitialized] if (list->lcores_share) { ^~~~~~~~~~~~~~~~~~ ../../root/dpdk/drivers/common/mlx5/mlx5_common_utils.c:165:32: note: unini= tialized use occurs here entry =3D list->cb_create(list, entry, ctx); ^~~~~ ../../root/dpdk/drivers/common/mlx5/mlx5_common_utils.c:152:2: note: remove= the 'if' if its condition is always true if (list->lcores_share) { ^~~~~~~~~~~~~~~~~~~~~~~~ ../../root/dpdk/drivers/common/mlx5/mlx5_common_utils.c:136:31: note: initi= alize the variable 'entry' to silence this warning struct mlx5_list_entry *entry, *local_entry; ^ =3D NULL 1 error generated. [1500/3183] Compiling C object drivers/libtmp_rte_net_mlx5.a.p/net_mlx5_mlx= 5_tx_empw.c.o ninja: build stopped: subcommand failed. ######################## Build failed! CC: clang version 12.0.0 (Fedora 12.0.0-2.fc34) Kindest regards, Raslan Darawsheh > -----Original Message----- > From: Suanming Mou > Sent: Monday, July 12, 2021 4:47 AM > To: Slava Ovsiienko ; Matan Azrad > > Cc: Raslan Darawsheh ; Ori Kam ; > dev@dpdk.org > Subject: [PATCH v5 14/26] common/mlx5: add list lcore share >=20 > As some actions in SW-steering is only memory and can be allowed to > create duplicate objects, for lists which no need to check if there > are existing same objects in other sub local lists, search the object > only in local list will be more efficient. >=20 > This commit adds the lcore share mode to list optimized the list > register. >=20 > Signed-off-by: Suanming Mou > Acked-by: Matan Azrad > --- > drivers/common/mlx5/mlx5_common_utils.c | 46 +++++++++++++++++++- > ----- > drivers/common/mlx5/mlx5_common_utils.h | 16 ++++++--- > drivers/net/mlx5/linux/mlx5_os.c | 11 +++--- > drivers/net/mlx5/mlx5_flow_dv.c | 2 +- > drivers/net/mlx5/windows/mlx5_os.c | 2 +- > 5 files changed, 55 insertions(+), 22 deletions(-) >=20 > diff --git a/drivers/common/mlx5/mlx5_common_utils.c > b/drivers/common/mlx5/mlx5_common_utils.c > index 8bb8a6016d..6ac78ba97f 100644 > --- a/drivers/common/mlx5/mlx5_common_utils.c > +++ b/drivers/common/mlx5/mlx5_common_utils.c > @@ -14,7 +14,7 @@ > /********************* mlx5 list ************************/ >=20 > struct mlx5_list * > -mlx5_list_create(const char *name, void *ctx, > +mlx5_list_create(const char *name, void *ctx, bool lcores_share, > mlx5_list_create_cb cb_create, > mlx5_list_match_cb cb_match, > mlx5_list_remove_cb cb_remove, > @@ -35,6 +35,7 @@ mlx5_list_create(const char *name, void *ctx, > if (name) > snprintf(list->name, sizeof(list->name), "%s", name); > list->ctx =3D ctx; > + list->lcores_share =3D lcores_share; > list->cb_create =3D cb_create; > list->cb_match =3D cb_match; > list->cb_remove =3D cb_remove; > @@ -119,7 +120,10 @@ __list_cache_clean(struct mlx5_list *list, int > lcore_index) >=20 > if (__atomic_load_n(&entry->ref_cnt, __ATOMIC_RELAXED) > =3D=3D 0) { > LIST_REMOVE(entry, next); > - list->cb_clone_free(list, entry); > + if (list->lcores_share) > + list->cb_clone_free(list, entry); > + else > + list->cb_remove(list, entry); > inv_cnt--; > } > entry =3D nentry; > @@ -145,25 +149,36 @@ mlx5_list_register(struct mlx5_list *list, void *ct= x) > local_entry =3D __list_lookup(list, lcore_index, ctx, true); > if (local_entry) > return local_entry; > - /* 2. Lookup with read lock on global list, reuse if found. */ > - rte_rwlock_read_lock(&list->lock); > - entry =3D __list_lookup(list, RTE_MAX_LCORE, ctx, true); > - if (likely(entry)) { > + if (list->lcores_share) { > + /* 2. Lookup with read lock on global list, reuse if found. */ > + rte_rwlock_read_lock(&list->lock); > + entry =3D __list_lookup(list, RTE_MAX_LCORE, ctx, true); > + if (likely(entry)) { > + rte_rwlock_read_unlock(&list->lock); > + return mlx5_list_cache_insert(list, lcore_index, > entry, > + ctx); > + } > + prev_gen_cnt =3D list->gen_cnt; > rte_rwlock_read_unlock(&list->lock); > - return mlx5_list_cache_insert(list, lcore_index, entry, ctx); > } > - prev_gen_cnt =3D list->gen_cnt; > - rte_rwlock_read_unlock(&list->lock); > /* 3. Prepare new entry for global list and for cache. */ > entry =3D list->cb_create(list, entry, ctx); > if (unlikely(!entry)) > return NULL; > + entry->ref_cnt =3D 1u; > + if (!list->lcores_share) { > + entry->lcore_idx =3D (uint32_t)lcore_index; > + LIST_INSERT_HEAD(&list->cache[lcore_index].h, entry, > next); > + __atomic_add_fetch(&list->count, 1, __ATOMIC_RELAXED); > + DRV_LOG(DEBUG, "MLX5 list %s c%d entry %p new: %u.", > + list->name, lcore_index, (void *)entry, entry- > >ref_cnt); > + return entry; > + } > local_entry =3D list->cb_clone(list, entry, ctx); > if (unlikely(!local_entry)) { > list->cb_remove(list, entry); > return NULL; > } > - entry->ref_cnt =3D 1u; > local_entry->ref_cnt =3D 1u; > local_entry->gentry =3D entry; > local_entry->lcore_idx =3D (uint32_t)lcore_index; > @@ -207,13 +222,22 @@ mlx5_list_unregister(struct mlx5_list *list, > MLX5_ASSERT(lcore_idx < RTE_MAX_LCORE); > if (entry->lcore_idx =3D=3D (uint32_t)lcore_idx) { > LIST_REMOVE(entry, next); > - list->cb_clone_free(list, entry); > + if (list->lcores_share) > + list->cb_clone_free(list, entry); > + else > + list->cb_remove(list, entry); > } else if (likely(lcore_idx !=3D -1)) { > __atomic_add_fetch(&list->cache[entry->lcore_idx].inv_cnt, > 1, > __ATOMIC_RELAXED); > } else { > return 0; > } > + if (!list->lcores_share) { > + __atomic_sub_fetch(&list->count, 1, __ATOMIC_RELAXED); > + DRV_LOG(DEBUG, "mlx5 list %s entry %p removed.", > + list->name, (void *)entry); > + return 0; > + } > if (__atomic_sub_fetch(&gentry->ref_cnt, 1, __ATOMIC_RELAXED) > !=3D 0) > return 1; > rte_rwlock_write_lock(&list->lock); > diff --git a/drivers/common/mlx5/mlx5_common_utils.h > b/drivers/common/mlx5/mlx5_common_utils.h > index 96add6d003..000279d236 100644 > --- a/drivers/common/mlx5/mlx5_common_utils.h > +++ b/drivers/common/mlx5/mlx5_common_utils.h > @@ -100,11 +100,8 @@ typedef struct mlx5_list_entry > *(*mlx5_list_create_cb) > */ > struct mlx5_list { > char name[MLX5_NAME_SIZE]; /**< Name of the mlx5 list. */ > - volatile uint32_t gen_cnt; > - /* List modification will update generation count. */ > - volatile uint32_t count; /* number of entries in list. */ > void *ctx; /* user objects target to callback. */ > - rte_rwlock_t lock; /* read/write lock. */ > + bool lcores_share; /* Whether to share objects between the lcores. > */ > mlx5_list_create_cb cb_create; /**< entry create callback. */ > mlx5_list_match_cb cb_match; /**< entry match callback. */ > mlx5_list_remove_cb cb_remove; /**< entry remove callback. */ > @@ -112,17 +109,27 @@ struct mlx5_list { > mlx5_list_clone_free_cb cb_clone_free; > struct mlx5_list_cache cache[RTE_MAX_LCORE + 1]; > /* Lcore cache, last index is the global cache. */ > + volatile uint32_t gen_cnt; /* List modification may update it. */ > + volatile uint32_t count; /* number of entries in list. */ > + rte_rwlock_t lock; /* read/write lock. */ > }; >=20 > /** > * Create a mlx5 list. > * > + * For actions in SW-steering is only memory and can be allowed > + * to create duplicate objects, the lists don't need to check if > + * there are existing same objects in other sub local lists, > + * search the object only in local list will be more efficient. > + * > * @param list > * Pointer to the hast list table. > * @param name > * Name of the mlx5 list. > * @param ctx > * Pointer to the list context data. > + * @param lcores_share > + * Whether to share objects between the lcores. > * @param cb_create > * Callback function for entry create. > * @param cb_match > @@ -134,6 +141,7 @@ struct mlx5_list { > */ > __rte_internal > struct mlx5_list *mlx5_list_create(const char *name, void *ctx, > + bool lcores_share, > mlx5_list_create_cb cb_create, > mlx5_list_match_cb cb_match, > mlx5_list_remove_cb cb_remove, > diff --git a/drivers/net/mlx5/linux/mlx5_os.c > b/drivers/net/mlx5/linux/mlx5_os.c > index 2a9a6c3bf8..ce41fb34a0 100644 > --- a/drivers/net/mlx5/linux/mlx5_os.c > +++ b/drivers/net/mlx5/linux/mlx5_os.c > @@ -274,7 +274,7 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > #ifdef HAVE_IBV_FLOW_DV_SUPPORT > /* Init port id action list. */ > snprintf(s, sizeof(s), "%s_port_id_action_list", sh->ibdev_name); > - sh->port_id_action_list =3D mlx5_list_create(s, sh, > + sh->port_id_action_list =3D mlx5_list_create(s, sh, true, >=20 > flow_dv_port_id_create_cb, >=20 > flow_dv_port_id_match_cb, >=20 > flow_dv_port_id_remove_cb, > @@ -284,7 +284,7 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > goto error; > /* Init push vlan action list. */ > snprintf(s, sizeof(s), "%s_push_vlan_action_list", sh->ibdev_name); > - sh->push_vlan_action_list =3D mlx5_list_create(s, sh, > + sh->push_vlan_action_list =3D mlx5_list_create(s, sh, true, >=20 > flow_dv_push_vlan_create_cb, >=20 > flow_dv_push_vlan_match_cb, >=20 > flow_dv_push_vlan_remove_cb, > @@ -294,7 +294,7 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > goto error; > /* Init sample action list. */ > snprintf(s, sizeof(s), "%s_sample_action_list", sh->ibdev_name); > - sh->sample_action_list =3D mlx5_list_create(s, sh, > + sh->sample_action_list =3D mlx5_list_create(s, sh, true, > flow_dv_sample_create_cb, > flow_dv_sample_match_cb, >=20 > flow_dv_sample_remove_cb, > @@ -304,7 +304,7 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > goto error; > /* Init dest array action list. */ > snprintf(s, sizeof(s), "%s_dest_array_list", sh->ibdev_name); > - sh->dest_array_list =3D mlx5_list_create(s, sh, > + sh->dest_array_list =3D mlx5_list_create(s, sh, true, > flow_dv_dest_array_create_cb, > flow_dv_dest_array_match_cb, > flow_dv_dest_array_remove_cb, > @@ -1759,7 +1759,8 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > err =3D ENOTSUP; > goto error; > } > - priv->hrxqs =3D mlx5_list_create("hrxq", eth_dev, > mlx5_hrxq_create_cb, > + priv->hrxqs =3D mlx5_list_create("hrxq", eth_dev, true, > + mlx5_hrxq_create_cb, > mlx5_hrxq_match_cb, > mlx5_hrxq_remove_cb, > mlx5_hrxq_clone_cb, > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index 5a536e3dff..4a45172a12 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -10054,7 +10054,7 @@ flow_dv_tbl_create_cb(struct mlx5_hlist *list, > uint64_t key64, void *cb_ctx) > MKSTR(matcher_name, "%s_%s_%u_%u_matcher_list", > key.is_fdb ? "FDB" : "NIC", key.is_egress ? "egress" : "ingress", > key.level, key.id); > - tbl_data->matchers =3D mlx5_list_create(matcher_name, sh, > + tbl_data->matchers =3D mlx5_list_create(matcher_name, sh, true, > flow_dv_matcher_create_cb, > flow_dv_matcher_match_cb, > flow_dv_matcher_remove_cb, > diff --git a/drivers/net/mlx5/windows/mlx5_os.c > b/drivers/net/mlx5/windows/mlx5_os.c > index e6176e70d2..a04f93e1d4 100644 > --- a/drivers/net/mlx5/windows/mlx5_os.c > +++ b/drivers/net/mlx5/windows/mlx5_os.c > @@ -610,7 +610,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > err =3D ENOTSUP; > goto error; > } > - priv->hrxqs =3D mlx5_list_create("hrxq", eth_dev, > + priv->hrxqs =3D mlx5_list_create("hrxq", eth_dev, true, > mlx5_hrxq_create_cb, mlx5_hrxq_match_cb, > mlx5_hrxq_remove_cb, mlx5_hrxq_clone_cb, > mlx5_hrxq_clone_free_cb); > -- > 2.25.1