From patchwork Wed Jun 21 07:30:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hari Sasank X-Patchwork-Id: 128879 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 4C4F642D10; Wed, 21 Jun 2023 09:31:16 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3E1CA406BC; Wed, 21 Jun 2023 09:31:16 +0200 (CEST) Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01olkn2100.outbound.protection.outlook.com [40.92.53.100]) by mails.dpdk.org (Postfix) with ESMTP id 5BD1A4068E for ; Wed, 21 Jun 2023 09:31:14 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=inA97VGFjJ3HpzvtgOFVqcMXBRlfjB0DDwBHzuPppQZaA0LltH218JtjWEoGB4dcpwsPyPx8w79cPW57MHOJPdcAUDaLMvhIuE5uYD8n+SBl7Ka0WfAVx1xQOJAlOk+kT5DnmPgd3TJp5bCwMHG/oNANneL3baQLaGzMA2QcH8P3elYa+ouz454xQMnUufcJJjF1sC1ioMCsdk1JraBK7G1bvkQvajADCqxWvLKZfKIJz3qFNsuNB0vf+CLvEFd7pSIYiOS54bIMDADhu5kngeO/A7aKBJfozdNXeqRktKWWFhdBy2hW/frqydRTyuIkAzB597rU5xqZQUVjWYdGpg== 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=Z8ZIw5pyerKYREHnoYz+skOsZkjNpPQuEO2X7WMRjf4=; b=Djra7p8Pu3HbTlzKV8jHvh40iEd4encDSNLdJ/HS2nDs4/RLifjiTljI6h0wevgYrZY0JFrymd43UufV0JocOqyvQ7m76hvnSAwIUjvFQJCTBhTW0aAYMhIZC7LajUZ15Qrhdg88LrnJdZ/kU5gWB/fI38a1Wie3enteXPKpdqi1Zkvi4+ZG6KnD6Qa1CgekG7G5svl7DuPHfWygRQjFfbSt7puWJwr/LEZdvC+UPmEwJpkHdISd2G/lJht+nYZKWotmmECf4GDghqgXQDszFMSH/mQC4b35cRRXqJ0Y4hRC3XjYp/VGYRHjgnJqHtH0W165vTw0jcztOPm2CBVwrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z8ZIw5pyerKYREHnoYz+skOsZkjNpPQuEO2X7WMRjf4=; b=WiT0N/F8ZT10GwNIaWis9wpas4hHQqkrexvGmsWNP6y0p6Z0sk+6+XYoSY2hTgFPKK8WxuVB6vOYcqgCFM+xGI7bcJPJLgnjVo10bOCcHfxG1g+gn6edkbaMpkjujalTYZwMmO5I2RtRIVev6tpvXGAgcOiU0NhMA8faq+EcbfGiGz/hv7DoL0xjXFr30WxqnV4WQdZ/fol21yGEuBoFArWhBIRa/nvk+TcaPeReNlqFvRnQy/xERq8WNMSp5etLrw24oGoeELFN6upMlpDAjiy2nmuW/Vq1fHNwNwXhP8QcUQRehzyd61WLRsys1hehW81z2EgxMp7/jYiEjd8ScA== Received: from SI2PR06MB4507.apcprd06.prod.outlook.com (2603:1096:4:158::13) by TYZPR06MB5906.apcprd06.prod.outlook.com (2603:1096:400:333::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Wed, 21 Jun 2023 07:31:11 +0000 Received: from SI2PR06MB4507.apcprd06.prod.outlook.com ([fe80::7ac3:e233:fef5:8662]) by SI2PR06MB4507.apcprd06.prod.outlook.com ([fe80::7ac3:e233:fef5:8662%3]) with mapi id 15.20.6500.029; Wed, 21 Jun 2023 07:31:11 +0000 From: Hari Sasank To: Matan Azrad , Viacheslav Ovsiienko , Ori Kam , Suanming Mou Cc: dev@dpdk.org, Hari Sasank Subject: [PATCH] net/mlx5: support bus socket with no hugepages Date: Wed, 21 Jun 2023 09:30:37 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [FIjWeGzDoRCO6SrtdESXDBU8YdkfYkKtAVJrIEzu5pKPgBpeS5EQyfDVJyGDbgj4] X-ClientProxiedBy: PA7P264CA0418.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:39b::7) To SI2PR06MB4507.apcprd06.prod.outlook.com (2603:1096:4:158::13) X-Microsoft-Original-Message-ID: <20230621073038.13701-1-harisasank@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SI2PR06MB4507:EE_|TYZPR06MB5906:EE_ X-MS-Office365-Filtering-Correlation-Id: a6539774-6339-4b4c-f414-08db72297c34 X-MS-Exchange-SLBlob-MailProps: LVbdfIC7uFCOKlZnzrW9MDQvl8a7QsxI3t01s3nZbmIhNMPchyPlIhSOMzGrk9x+fiRR6Eye0sID17ULFIcY+fYZJPMQORNYBZJ7GjQU0ukIqzx/QrPln5P3T9ZDyFuo6VMBtqHiZIoHUa602L24PuFsq741Fls+D0OE4na4j4uJ7cs8AgMObEqgonytTJsJk1aSVNWbhilDq9bnWoJ6yklhJHj0I3tWUEvGacJ5wFo/+n5lSUTI/lr7ea4dNPaT4bSFrZQJoFbotCcc/hCYBiHrUXf6RxmukBOtek/zrHzld+UsseVEhmtpFAX3g2A2hImn7W9Ps7Ga5jEcOdtkZ2sI7Eh1vIqg9haaGcwyDLCjVZyV2+Zcy/JeZCL4mw9j/ayCPhVBZ5srBuNtqQVRRoY/upODg8Mlqxb4duwioeQyVkvTKbZd9DAy0Xx8+6hVyVSQna57FNxI0O+0t/1/HqIQ85GNdPFxpEtViNAlV9li0KYMceNF6+hY3LXT4fUEkho+jqM2t3QLT49uS9dRNljwOHlVA+89TLl+v3//Faxfj5+l0McOcz3y/p1ldR8v+F+61TZnHCacfO4nGihVjJJmAfZCgPcnWZFP4yd+VAN9REeGOcDW3xh3cCRT0LlvGJes1Ht31d9QGMtT3I2on+oVZxR/+NJUkL2zeDSSN9NOitkNCx4zFDL5+CUDQXxCcNp+pBOQGkHMVbL9M9BsaZSBJxWV/QYxLKVEZdsU0uEStMYoREbMLg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S7Sd8ryMIr0E5AMeQqyOdsKD2c2wV+jBqQ/as1YiKb7MleWbwK5ae8HakqgnOv2CVTdzr2HgWHo54ZpnaRK+L9/uiKGfv+6bvTsjBk8wBizf5PBssSMTUpPSXt+ib5B9IRSMQGVsmYVBodDSURRtrSllxbBBup05J1gCEHB7MBzNm49grWqaJkh6RuC0O5ZGvPYXT+6QSxnD6uVxVViB+uK8ZiPi/dpbm6kUNoaH+spa9hha/ptDKNlWk+5e+ruYrByJ7guq3MHOMkXmN1WGyTaNG9fcGq7G0NBftwr91Ro3GtuIWXE20/vOJUt67Jgrkann+kUP9IyE8mkmg2P1gh5DJKKvfR1XOVjzmH7GagcvGWDTnXVO/ah6n82TRVH59eCZOsIR8wZLeHjvVhgt7QYnrTJTMvrekQquh6J2+BCRFu+f+kBXFREhOFcMKVm52rueViVcqSLpgS1v4qCqOFN5mqUkjBWf/ZqiqpfPdPiRR6McPBs3x3C9RHBiKAfQnIW1CM0He5h2G19kz0dNFlfGj6yeENpiaCS/JYKO5hdLiqjt/wFi+r9vgXag4jtCK2gNh5hs1M4ldsFXeq243iUrzx+Nt2EziAS94A8D8ypKjDTycDPIujPpjCg50OLg X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: JaQdj4AXWukxjMMFEC7dxLfBqJHqcUpi48DNfJ/fOZgWDYvg5iOCAEgUOMVYtBoti+My6QCRHowy2wnmS4jDTX3jwtjWDzhLU/Y6/rWz/EkPev7x8qe9aOeZs7Fkkl55RMK4EZopX+OsG0ggB1sZHlVKtxVPAwQ5HZHjFxA1h3/tVHB77RbUgYitNBtzDDpMEXOX25ziEkk3aJc3NFiJXaBOmfqc/gNMDWETny4VZWF4DLl+Cj08WS5nGyUrVSGTJbbJyAek7iwh9K2YDynqnS1fb4cos0A8M5WYb/XsadLsXQ9CcSkCjNQ5uqObYew0DUW+AMfMDjm/1c3GNr0hKWSWhFHDnjPyW81jk3g1nsK3360Gkx2TP7Syng3MB0YxKX9a322kuRGIhp0FzwqOVZNVVRL39R+XKHt1xV4aTgTC59XB1cpfgoAQ+ZVUZFXUX1QbbW6x2FWYVX/xZerwesr1q/EHxT7Fo9hAgWnZlDPbVcX0lrPNv5uKw5qZD1tcRyPwxFazEmHIOkkJwl8omfacX9XrGZv7GrMK76odr3YuggA21DvuCFqA2y+dq5Xp99zEQHADBlk0IHIRofzMZHQVWgxgZaoo6AUCke9L5ObXeQ6+jcuqhIiNx3/9+wKNHYtWOGoNL/WGyQA7Kq/lqfgSGy8ciN6VW5YffJ/mQnxpfW8Q9jQHqywsSRsvFBFcrzp0+CjUwHoHdIol4pTmwzib0LdvnFqzpAIKOo4YkhfO4n8EcRPw9MrCo9Ve2liR+Gk10F7lUi1dXx9fwroTqGF3SnSUiibbl065u+9ZAlj0114OfkDq7iSMyM20W63Ea3P3T8LJlh3c4R6fCIVpEWOu5gqvqww3kCS/9mAlQnNgl0ByICKn8Di5OtL8F8A/XouyOxP4wN69rT9f3bJRpb22tGHuTLWIWSC8z8pqX3uN5ojMd9H/BQ0dQ6oY+ziwSIergwWqonvwmkvjwIJRWTYzjsHoXmOqe3jhlO6DYQudy2TMgyDVsM4q7YKSCtaUETPNjeT63Cy2RVG5g35UlDQacGwyQyYXmDLiw+tZ/tyXMg25ycT630y6f6Qel4Q8LPZCBwY4ZX1rA0XUpg9FLuQ0L2nMYPQvHPp4SLiICZ/8QitxkQG9T95VrbSSP4AI+S0fGxSaxbplRyjp9fAtrwRG0VPRdOkrNPN0UutNc3hdJ95h9zbdzrWadycU3JklP4frQiiwSM4ZvWxGOudAqMp0Hoo3g+8dJHtxOWJNh9BuBoBljRx1Jkv03YmaZVd+qbgCStd8bc/VJcG4ZpkbpomYTbVxB1esB2weSSIF8qY= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6539774-6339-4b4c-f414-08db72297c34 X-MS-Exchange-CrossTenant-AuthSource: SI2PR06MB4507.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2023 07:31:11.1279 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR06MB5906 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 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. 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 socket. This allocates memory on any socket starting with the current thread's socket. 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(-) 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 = sizeof(struct mlx5_cqe) * num_of_cqes; umem_dbrec = RTE_ALIGN(umem_size, MLX5_DBR_SIZE); umem_size += MLX5_DBR_SIZE; - umem_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, umem_size, + umem_buf = 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 = MLX5_WQE_SIZE * num_of_wqbbs; umem_dbrec = RTE_ALIGN(umem_size, MLX5_DBR_SIZE); umem_size += MLX5_DBR_SIZE; - umem_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, umem_size, + umem_buf = 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 = wqe_size * (1 << log_wqbb_n); umem_dbrec = RTE_ALIGN(umem_size, MLX5_DBR_SIZE); umem_size += MLX5_DBR_SIZE; - umem_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, umem_size, + umem_buf = 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 = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, + bt->table = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | + MLX5_MEM_FALLBACK_ANY_SOCKET, sizeof(struct mr_cache_entry) * n, 0, socket); if (bt->table == 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 = rte_bitmap_get_memory_footprint(ms_n); - mr = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, + mr = 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 == 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 int align, int socket) addr = rte_zmalloc_socket(NULL, size, align, socket); else addr = rte_malloc_socket(NULL, size, align, socket); + if (!addr && socket != SOCKET_ID_ANY && + (flags & MLX5_MEM_FALLBACK_ANY_SOCKET)) { + if (flags & MLX5_MEM_ZERO) + addr = rte_zmalloc_socket(NULL, size, align, SOCKET_ID_ANY); + else + addr = 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 = 1 << 2, /* Memory should be cleared to zero. */ + MLX5_MEM_FALLBACK_ANY_SOCKET = 1 << 3, + /* Memory can be allocated on any socket if + * it fails to allocate on the given socket. + */ }; /** 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 = sizeof(struct mlx5_proc_priv) + priv->txqs_n * sizeof(struct mlx5_uar_data); - ppriv = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, ppriv_size, + ppriv = 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 = 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) RTE_BIT32(host_mem_attr.wq_attr.log_hairpin_num_packets); umem_dbrec = RTE_ALIGN(umem_size, MLX5_DBR_SIZE); umem_size += MLX5_DBR_SIZE; - umem_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, umem_size, + umem_buf = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | + MLX5_MEM_FALLBACK_ANY_SOCKET, umem_size, alignment, priv->sh->numa_node); if (umem_buf == 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 >>= mprq_log_actual_stride_num; alloc_size += desc * sizeof(struct mlx5_mprq_buf *); } - tmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, alloc_size, 0, socket); + tmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO | + MLX5_MEM_FALLBACK_ANY_SOCKET, alloc_size, 0, socket); if (!tmpl) { rte_errno = 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 = 0; i != priv->txqs_n; ++i) { struct mlx5_txq_ctrl *txq_ctrl = mlx5_txq_get(dev, i); struct mlx5_txq_data *txq_data = &txq_ctrl->txq; - uint32_t flags = MLX5_MEM_RTE | MLX5_MEM_ZERO; + uint32_t flags = MLX5_MEM_RTE | MLX5_MEM_ZERO | + MLX5_MEM_FALLBACK_ANY_SOCKET; 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 = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, + rxq_ctrl->obj = 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 = &sh->txpp.clock_queue; int ret; - sh->txpp.tsa = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, + sh->txpp.tsa = 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 index 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 = dev->data->dev_private; struct mlx5_txq_ctrl *tmpl; - tmpl = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*tmpl) + + tmpl = 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 = ENOMEM;