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 8AC964323E; Mon, 30 Oct 2023 11:43:04 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 73CE1402E7; Mon, 30 Oct 2023 11:43:04 +0100 (CET) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2042.outbound.protection.outlook.com [40.107.243.42]) by mails.dpdk.org (Postfix) with ESMTP id A055D40285 for ; Mon, 30 Oct 2023 11:43:03 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TjvU9QsKxr5FTi5BlNfWU/tpuLTUs7XsXhv8hrdhUsuNTt9wLIz4xUqBCu236aoUWDO0F3Z+kb9qQbpupaffOroMjl8xjtY8Jc17foGIdM5ihKl02fXVb3CRLIIVAawWaTU3DHf6/B/fEAG+uhcDrACWA25SAYGOM91qWqmzd1A9Tr51fQ48dtD4ofIV7o/9mzMDDcsePwyHJYmUomdDlH4urRAInIwtEjho2/6iyk14b7tSC7L0Xg65s+ARPMayOhOY9+2ND/8O3YDDq7VmmF3EoXPLGiem8F8QDEF0tg1G8QgKsvgHaEbHgXx7QCc6ahmoZVoyTG3fsa7Nq7k9WQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=c//5FU83MI/eYKg9+o6VCvVxc4LuxVlfOuBPEioAOKY=; b=nvKrrDYHfvwzUCCINGWB9NSzaUYHKF501kvOGSLvgk9B+FM/MJVFc/kXBzvXZA8w635S0QV6JY20VwbZODGey9nK6nLIRn0dqhrIEm8aAfn4Rsgpqaww4Oz61fZmUYU+un0RDQFRcT/+m5Yhl7HEl/IHaTuDaQkF9EAocywyR/WYvICVkZlbf+4P24DYlvG5LbGS0GSh8MNeYuJJh5kF4kxKUtwX6eU/LHm8f0D1sybUxzkPze4h6g0Qv6nqjIHEr/U4JyZ3J7JM8qcylTZwOM20io5JLJABAsQrH/JDKen8Ymy1DBqDhlyaKRmRaH6Qyre99WFaXLruv4jbezEWNg== 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=c//5FU83MI/eYKg9+o6VCvVxc4LuxVlfOuBPEioAOKY=; b=dIoMZCwY/ZG0pxWaUXW2OUPQaL650+coTDvrqtHHaiTvJlY6RkfV4fIC0EPicAfUUVXKyKjysR5K92kNt4LZ6LrCwZgyuBTeGDZiHSaUb152BBhuQSTQac5VUPO03QQPkQOVwW1QYW+TkwbjK1mgyj1qlDsoWAu5ppCALN7IpIiOnW2rU6So7O5hFbbbJzmbT3DjUJzBBdTpaNvb9psH/d3QPpUFo+jMXyEEvM+pN04D/OFCWFjBCW3DIZE8J7+J1IX9Ir69ryo35DiPuIWfr7OAj4I4N9Nk/b9Xo45XP/GfucxoejsEp4/eyccqxcSrlV9139JUOZiC59U9ONNnog== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by CH2PR12MB4873.namprd12.prod.outlook.com (2603:10b6:610:63::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.28; Mon, 30 Oct 2023 10:43:01 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::5fd9:c0c:398c:7dfb]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::5fd9:c0c:398c:7dfb%2]) with mapi id 15.20.6933.028; Mon, 30 Oct 2023 10:43:01 +0000 From: Slava Ovsiienko To: Hari Sasank , Matan Azrad , Ori Kam , Suanming Mou CC: "dev@dpdk.org" Subject: RE: [PATCH] net/mlx5: support bus socket with no hugepages Thread-Topic: [PATCH] net/mlx5: support bus socket with no hugepages Thread-Index: AQHZpBJgCjjEVoNlmkScjpWY6t+HE7Bi8SzQ Date: Mon, 30 Oct 2023 10:43:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR12MB3753:EE_|CH2PR12MB4873:EE_ x-ms-office365-filtering-correlation-id: 765fa6e1-1b7f-4913-bbbd-08dbd934fd4c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: A5SpQNFldld3m4z1kh/zdaTKzXxnkw65WDtIgP+a/noSJh1DjDToS5ehz04rwPwReWRyVjmlcpJm565BGk1T4pgpPJxrQ58TlgexJqmLU94zmpC6tFShmw8+M3S5vdsi6wOIkbh/HG/Db7au5EVS6h3Mouxa3qz1l3fM5QKQ18a3G1eG29qkQoZKINaisF0rgF5txM08NNRoFqwxCo7b4XLwJo20155wtDquwViANgUtVI6vejao6RbX2s/mLYnnjKISLptNKtfXOz2r66HbGy9htID+h1CTLBGuTqG8jhbpb+CkpsOs0NqxVWwJ+/gcUzxMxtIsjS1S+8dzQ7KOwVN9NBmEHrTMwDSFrWrWmKbkT8KtmMRwNmGzKI5u0XOB37F72aHgOGsWKGeUuc7WHR5EXvcgjodJJ0lxKkM6XbCNXh30//U9StHaknz6JxGBvvZPr5pP3vEBfNMl4Jzzw2vaSb399ZnSp2itCbmIpOYfl2hnPfUqdsAetiPQFBe2Ct53Sc8cd7zcv8vBzK4eGxzcNbOzE8XoIwfcwZbLgThX+6oLxzTSUQhd74S+8kmW3mJnXWq/I11NW/0cVT2M5oeeEQBgeOd6yDkCBJfNXdm/tcWJ0trQWwWFvQBY9m2d x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(396003)(376002)(366004)(346002)(136003)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(55016003)(83380400001)(9686003)(26005)(66556008)(2906002)(66946007)(66476007)(316002)(8936002)(64756008)(6636002)(41300700001)(71200400001)(8676002)(5660300002)(4326008)(52536014)(45080400002)(6506007)(7696005)(53546011)(478600001)(76116006)(66446008)(30864003)(110136005)(122000001)(38100700002)(33656002)(86362001)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?I9trImiyPZJQyPGlr74qiHB1r6VACCRNl6mSv4XxCSH5bImVHIeCd0K2BYlR?= =?us-ascii?Q?gDtdcjnNrQGY/44j1ZEH6l73nKAnR22+1q2bk8z9woqD23Qt307sOe09+OA+?= =?us-ascii?Q?O48Q6g19CvnYJmUXRbtM9a1+UjthpyIWT2qA71ZTPXQSuTsHiM9pfPL9GWiV?= =?us-ascii?Q?Dz8PAspHcziTDUiE7qQj9PaEfz3GA2qcg3TQlIbphhAeyHxn7Kayl868AiaD?= =?us-ascii?Q?ATPWUhWt0X4Ehi8/j0dYHBn3ZMXNYHwK7l6yt9KOVpTvZX55E3tJEZPVgqZ/?= =?us-ascii?Q?U1sFefRo4nVRCH09oa0LvpCDBNGH+Ulnz0knriSyWo1LISU8Yp57jnEuWs/i?= =?us-ascii?Q?F2fTKd2pMY9eKtgxIahs48EqnI7n1nitt8J8LmQ7My626F2A+s+bt3N4ZViu?= =?us-ascii?Q?WkWIPl3IKrIW3Tlg4OMZBuP++TD++JGRP3bL8OPDym4t1BaLlK0siTI+3aJN?= =?us-ascii?Q?piESXJVo4LQRWYTVHAMDIVB9MlSv+Pv9uHPSb4QcYQz87aWmJ3//rHaPTWxZ?= =?us-ascii?Q?O2kWurCWwM3HitIp0zvxbpi/e10d0VqVK74KmGc0rivl4zY68UaZY2Rw7DMR?= =?us-ascii?Q?0Uc0mrLD4zdhZvuMa+sexBWh5PaT1LHMzAzJs3/XJ9H2ZKmtXpQwKiKp7XYB?= =?us-ascii?Q?6/61H+MhEpnXHSa2ZVC3BMUnoOvWniDfNoLgMIpz3T3NZ7CkSn42llZVrtoA?= =?us-ascii?Q?v5hapzOFqwH2iaqlikOjIILy6UKkKhq6N3JjboDnDprkg/9sXJlAYWgCyKf8?= =?us-ascii?Q?l/ncVuSfQSosK8RcOCJJl1iZYr42467ON6xHj55120LvksIV/FeNZ0CD1TS4?= =?us-ascii?Q?JqhlXurMspFICXOL/rZyA4q6udZlFKOzwoItFHQEVkoofBHyS4NQ0q/n9nrl?= =?us-ascii?Q?26jOy1TN4SgoNIY7gYDWXWYCO8p9Scjx12wevTymffy+cuQqIR/1f1/jSxJQ?= =?us-ascii?Q?gKgA8jK8kwKONu4A1awUfC+wcGkcHPuF4VEMqud78TAnagPF27Yw1uUOEW2Z?= =?us-ascii?Q?q55LR8EM7jcn5IG8blqQRZYpr4vKnMilzxodqgyxuSoBHLq6f6XrNHo9c5l1?= =?us-ascii?Q?v1BcyYf17Xu++GVK6NVdiiRWDWMe2+EuWnW9mktNh78hv2bQ+KPEiv4xik1w?= =?us-ascii?Q?Lj16sWjXt/ZKnD/n5jzHKOi01Bu2ZkxCDf1/R5mRr/0GAyzR1YpcoieHrtlO?= =?us-ascii?Q?wbe36XML8HsyHoXpHVsqtuSCmqm9vypn1FfCxXYdTppFwPxWyzSHXIysTP++?= =?us-ascii?Q?pzdEO3MHN1/RNcpxdthT7kkGwHBhMnnUI0QPjR0PLdiovJLIu+whlrYQywvB?= =?us-ascii?Q?q6I3MDaOIZyht3tlF6hOgD829h7i8kD07ecQtxQwTbdjiOE8gJqGvlpuINf/?= =?us-ascii?Q?3cE3hVofrXNqbdliC67Pl8pKiPIVzesz28BtLR3sAxrZJ7Y5JPhjWgK6RVxW?= =?us-ascii?Q?GYD/eUWoaHoG7ZBzWL7H8Z7f3Ac595H82imiH+j6zh/oiRyawPjJlWgCzXw8?= =?us-ascii?Q?VaPcQR2JAGOVMoqf563glw5TRfu9gemayXr/2kBgUtx9JzVAj8fUyI8AjxdM?= =?us-ascii?Q?kb4qthKD5T/dqGjk0V6gJv+vgwdypVvgfsnnf27c?= 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: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 765fa6e1-1b7f-4913-bbbd-08dbd934fd4c X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Oct 2023 10:43:01.3636 (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: 3N5K29HjmIXSZItKVayPv15n0DWpFjeGnM2ehLCO/q3akm4hzdNwc6hPzKnQxZ4fGcy0A640nuESE2XXBZjKvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4873 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 Hi, Hari As I see almost all updates, using newly introduced MLX5_MEM_FALLBACK_ANY_S= OCKET flag, are related to the memory mapped for the hardware usage (NIC accesses these= areas with DMA over the PCIe bus segment NIC attached to). It means the memory allegiance = to the specific is strong and might be critical for the performance. In general, mlx5 PMD is designed in way requesting the memory on the specif= ic socket only If, and only if it is really needed. Generally speaking, missing huge pages on the socket to which the NIC is at= tached to should be considered as misconfiguration. Could you, please, elaborate a l= ittle bit more, what is a use case for this scenario? With best regards, Slava > -----Original Message----- > From: Hari Sasank > Sent: Wednesday, June 21, 2023 10:31 AM > To: Matan Azrad ; Slava Ovsiienko > ; Ori Kam ; Suanming Mou > > Cc: dev@dpdk.org; Hari Sasank > Subject: [PATCH] net/mlx5: support bus socket with no hugepages >=20 > When a Mellanox NIC is attached to a bus on a numa socket, it tries to > allocate rte memory in that socket. > If hugepages are not configured/available on that rte socket > mlx5_common_pci_probe fails with ENOMEM. >=20 > In this patch, a memflag MLX5_MEM_FALLBACK_ANY_SOCKET is introduced > which when set on mlx5_malloc, will allocate the memory using > SOCKET_ID_ANY if it is not able to allocate memory on the specified socke= t. > This allocates memory on any socket starting with the current thread's > socket. >=20 > Signed-off-by: Hari Sasank > --- > drivers/common/mlx5/mlx5_common_devx.c | 9 ++++++--- > drivers/common/mlx5/mlx5_common_mr.c | 5 +++-- > drivers/common/mlx5/mlx5_malloc.c | 7 +++++++ > drivers/common/mlx5/mlx5_malloc.h | 4 ++++ > drivers/net/mlx5/mlx5.c | 3 ++- > drivers/net/mlx5/mlx5_devx.c | 3 ++- > drivers/net/mlx5/mlx5_rxq.c | 3 ++- > drivers/net/mlx5/mlx5_trigger.c | 6 ++++-- > drivers/net/mlx5/mlx5_txpp.c | 3 ++- > drivers/net/mlx5/mlx5_txq.c | 3 ++- > 10 files changed, 34 insertions(+), 12 deletions(-) >=20 > diff --git a/drivers/common/mlx5/mlx5_common_devx.c > b/drivers/common/mlx5/mlx5_common_devx.c > index 431d8361cebd..122f1c65eab6 100644 > --- a/drivers/common/mlx5/mlx5_common_devx.c > +++ b/drivers/common/mlx5/mlx5_common_devx.c > @@ -107,7 +107,8 @@ mlx5_devx_cq_create(void *ctx, struct > mlx5_devx_cq *cq_obj, uint16_t log_desc_n, > umem_size =3D sizeof(struct mlx5_cqe) * num_of_cqes; > umem_dbrec =3D RTE_ALIGN(umem_size, MLX5_DBR_SIZE); > umem_size +=3D MLX5_DBR_SIZE; > - umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > umem_size, > + umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > umem_size, > alignment, socket); > if (!umem_buf) { > DRV_LOG(ERR, "Failed to allocate memory for CQ."); @@ - > 225,7 +226,8 @@ mlx5_devx_sq_create(void *ctx, struct mlx5_devx_sq > *sq_obj, uint16_t log_wqbb_n, > umem_size =3D MLX5_WQE_SIZE * num_of_wqbbs; > umem_dbrec =3D RTE_ALIGN(umem_size, MLX5_DBR_SIZE); > umem_size +=3D MLX5_DBR_SIZE; > - umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > umem_size, > + umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > umem_size, > alignment, socket); > if (!umem_buf) { > DRV_LOG(ERR, "Failed to allocate memory for SQ."); @@ - > 476,7 +478,8 @@ mlx5_devx_wq_init(void *ctx, uint32_t wqe_size, uint16_t > log_wqbb_n, int socket, > umem_size =3D wqe_size * (1 << log_wqbb_n); > umem_dbrec =3D RTE_ALIGN(umem_size, MLX5_DBR_SIZE); > umem_size +=3D MLX5_DBR_SIZE; > - umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > umem_size, > + umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > umem_size, > alignment, socket); > if (!umem_buf) { > DRV_LOG(ERR, "Failed to allocate memory for RQ."); diff -- > git a/drivers/common/mlx5/mlx5_common_mr.c > b/drivers/common/mlx5/mlx5_common_mr.c > index 7b14b0c7bf1e..b2ad6a249732 100644 > --- a/drivers/common/mlx5/mlx5_common_mr.c > +++ b/drivers/common/mlx5/mlx5_common_mr.c > @@ -223,7 +223,8 @@ mlx5_mr_btree_init(struct mlx5_mr_btree *bt, int n, > int socket) > } > MLX5_ASSERT(!bt->table && !bt->size); > memset(bt, 0, sizeof(*bt)); > - bt->table =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > + bt->table =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > sizeof(struct mr_cache_entry) * n, > 0, socket); > if (bt->table =3D=3D NULL) { > @@ -767,7 +768,7 @@ mlx5_mr_create_primary(void *pd, > (void *)addr, data.start, data.end, msl->page_sz, ms_n); > /* Size of memory for bitmap. */ > bmp_size =3D rte_bitmap_get_memory_footprint(ms_n); > - mr =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > + mr =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > +MLX5_MEM_FALLBACK_ANY_SOCKET, > RTE_ALIGN_CEIL(sizeof(*mr), > RTE_CACHE_LINE_SIZE) + > bmp_size, RTE_CACHE_LINE_SIZE, msl->socket_id); > if (mr =3D=3D NULL) { > diff --git a/drivers/common/mlx5/mlx5_malloc.c > b/drivers/common/mlx5/mlx5_malloc.c > index c58c41da9266..e109f1bfa994 100644 > --- a/drivers/common/mlx5/mlx5_malloc.c > +++ b/drivers/common/mlx5/mlx5_malloc.c > @@ -182,6 +182,13 @@ mlx5_malloc(uint32_t flags, size_t size, unsigned in= t > align, int socket) > addr =3D rte_zmalloc_socket(NULL, size, align, socket); > else > addr =3D rte_malloc_socket(NULL, size, align, socket); > + if (!addr && socket !=3D SOCKET_ID_ANY && > + (flags & MLX5_MEM_FALLBACK_ANY_SOCKET)) { > + if (flags & MLX5_MEM_ZERO) > + addr =3D rte_zmalloc_socket(NULL, size, align, > SOCKET_ID_ANY); > + else > + addr =3D rte_malloc_socket(NULL, size, align, > SOCKET_ID_ANY); > + } > mlx5_mem_update_msl(addr); > #ifdef RTE_LIBRTE_MLX5_DEBUG > if (addr) > diff --git a/drivers/common/mlx5/mlx5_malloc.h > b/drivers/common/mlx5/mlx5_malloc.h > index 9086a4f3f22e..cd57f95a629e 100644 > --- a/drivers/common/mlx5/mlx5_malloc.h > +++ b/drivers/common/mlx5/mlx5_malloc.h > @@ -28,6 +28,10 @@ enum mlx5_mem_flags { > /* Memory should be allocated from rte hugepage. */ > MLX5_MEM_ZERO =3D 1 << 2, > /* Memory should be cleared to zero. */ > + MLX5_MEM_FALLBACK_ANY_SOCKET =3D 1 << 3, > + /* Memory can be allocated on any socket if > + * it fails to allocate on the given socket. > + */ > }; >=20 > /** > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index > f9aea1318736..5b520d468299 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -2063,7 +2063,8 @@ mlx5_proc_priv_init(struct rte_eth_dev *dev) > */ > ppriv_size =3D sizeof(struct mlx5_proc_priv) + > priv->txqs_n * sizeof(struct mlx5_uar_data); > - ppriv =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > ppriv_size, > + ppriv =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, ppriv_size, > RTE_CACHE_LINE_SIZE, dev->device- > >numa_node); > if (!ppriv) { > rte_errno =3D ENOMEM; > diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c > index 4369d2557e9e..47a925e5913a 100644 > --- a/drivers/net/mlx5/mlx5_devx.c > +++ b/drivers/net/mlx5/mlx5_devx.c > @@ -1285,7 +1285,8 @@ mlx5_txq_obj_hairpin_new(struct rte_eth_dev > *dev, uint16_t idx) >=20 > RTE_BIT32(host_mem_attr.wq_attr.log_hairpin_num_packets); > umem_dbrec =3D RTE_ALIGN(umem_size, MLX5_DBR_SIZE); > umem_size +=3D MLX5_DBR_SIZE; > - umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | > MLX5_MEM_ZERO, umem_size, > + umem_buf =3D mlx5_malloc(MLX5_MEM_RTE | > MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > umem_size, > alignment, priv->sh->numa_node); > if (umem_buf =3D=3D NULL && txq_ctrl- > >hairpin_conf.force_memory) { > DRV_LOG(ERR, "Failed to allocate memory for > hairpin TX queue"); diff --git a/drivers/net/mlx5/mlx5_rxq.c > b/drivers/net/mlx5/mlx5_rxq.c index ad8fd13cbe8e..6bdf1678e499 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -1728,7 +1728,8 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t > idx, uint16_t desc, > desc >>=3D mprq_log_actual_stride_num; > alloc_size +=3D desc * sizeof(struct mlx5_mprq_buf *); > } > - tmpl =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > alloc_size, 0, socket); > + tmpl =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, alloc_size, > 0, socket); > if (!tmpl) { > rte_errno =3D ENOMEM; > return NULL; > diff --git a/drivers/net/mlx5/mlx5_trigger.c > b/drivers/net/mlx5/mlx5_trigger.c index bbaa7d2aa021..1a6abdf2b61d > 100644 > --- a/drivers/net/mlx5/mlx5_trigger.c > +++ b/drivers/net/mlx5/mlx5_trigger.c > @@ -55,7 +55,8 @@ mlx5_txq_start(struct rte_eth_dev *dev) > for (i =3D 0; i !=3D priv->txqs_n; ++i) { > struct mlx5_txq_ctrl *txq_ctrl =3D mlx5_txq_get(dev, i); > struct mlx5_txq_data *txq_data =3D &txq_ctrl->txq; > - uint32_t flags =3D MLX5_MEM_RTE | MLX5_MEM_ZERO; > + uint32_t flags =3D MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET; >=20 > if (!txq_ctrl) > continue; > @@ -180,7 +181,8 @@ mlx5_rxq_ctrl_prepare(struct rte_eth_dev *dev, > struct mlx5_rxq_ctrl *rxq_ctrl, > return ret; > } > MLX5_ASSERT(!rxq_ctrl->obj); > - rxq_ctrl->obj =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > + rxq_ctrl->obj =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > sizeof(*rxq_ctrl->obj), 0, > rxq_ctrl->socket); > if (!rxq_ctrl->obj) { > diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c > index 5a5df2d1bb16..c81ae7bfd328 100644 > --- a/drivers/net/mlx5/mlx5_txpp.c > +++ b/drivers/net/mlx5/mlx5_txpp.c > @@ -394,7 +394,8 @@ mlx5_txpp_create_clock_queue(struct > mlx5_dev_ctx_shared *sh) > struct mlx5_txpp_wq *wq =3D &sh->txpp.clock_queue; > int ret; >=20 > - sh->txpp.tsa =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > + sh->txpp.tsa =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > MLX5_TXPP_REARM_SQ_SIZE * > sizeof(struct mlx5_txpp_ts), > 0, sh->numa_node); > diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c in= dex > 8cb52b0f7d8e..b83e798544d2 100644 > --- a/drivers/net/mlx5/mlx5_txq.c > +++ b/drivers/net/mlx5/mlx5_txq.c > @@ -1074,7 +1074,8 @@ mlx5_txq_new(struct rte_eth_dev *dev, uint16_t > idx, uint16_t desc, > struct mlx5_priv *priv =3D dev->data->dev_private; > struct mlx5_txq_ctrl *tmpl; >=20 > - tmpl =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, > sizeof(*tmpl) + > + tmpl =3D mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | > + MLX5_MEM_FALLBACK_ANY_SOCKET, > sizeof(*tmpl) + > desc * sizeof(struct rte_mbuf *), 0, socket); > if (!tmpl) { > rte_errno =3D ENOMEM; > -- > 2.39.2