From patchwork Wed Sep 28 05:25:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 117029 X-Patchwork-Delegate: ferruh.yigit@amd.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 51AEFA00C2; Wed, 28 Sep 2022 07:26:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4D7DE42B78; Wed, 28 Sep 2022 07:25:52 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80055.outbound.protection.outlook.com [40.107.8.55]) by mails.dpdk.org (Postfix) with ESMTP id 99CD241133 for ; Wed, 28 Sep 2022 07:25:50 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AhqmNHyi7n41vHdfzwUXDcN6eF3juu6pnasZEAMUE+NV2S/qdI3RhHn9RJ6mwaD+BfYOQdSUfOjE2sLyFhPiu+4BpKZ9ZxSVZcUFl39KR1jHbrKmeYuLaK0PBGRPbenC2yfv9Hn4z44faAIm9Mnu6QBN2VnF85/nmsijOYnKdMrbEG0EtsnceVPTIR2iN8K0cQ6D9RXc+cVN7L273V+dlR8RwzF3ixig3gnTpzoK5wa09GAK/m0JW8QrMeW+Kjr5HFFZiP0D8GL0t0HlBxdC1GXJDetTf2zhyG9fjLhx15sqnz3w3Syk6Bivi4xJPBjVRAISKz4i1FYqF5ylmg90ow== 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=ZZqMSU79vKIFWjQyoVrYBEpPvH/BO19DaG8KVjQMXlw=; b=VmRrX4W1YcbTjW3XMPu+lCWP6EcOkHKOFpNNnYw1RXir4J4eoTfvNf15/izI65fhNvhcunHTPc1wFGHQG3YpMgdwOD6xc/rIbd9wTBFNhTRQrGGkTwSjyKMwmHhmQC5JgQMsYzeKTZt5/O0TPDQaLDld3WV7NmvfkmBvYdo8uNceDaJobEz14v9oD/n9sOxTQUNPuyqOmLbH4DvXmBxQlVec645WF5rY2NE8BLqknQAfiTzAfppwfcyyq/HSieIFx2pkxqosXjfHLibWo2j3yvkmUAlcqKh5LEm8QqbwSR4KRM7ssGeSgy4WucUf0uf11rQje1gPI9IoQptLcQVYjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZZqMSU79vKIFWjQyoVrYBEpPvH/BO19DaG8KVjQMXlw=; b=HVF/PguiGCZEOPs47MuwwqZJXro8yWbhW2mSbcGgSJl/G1TecwZZk99qRL47Er4hmTXLG1UkGcrjUvgHO1i4jGN9lC210x94MMU41aUKpgZUje34BXTO5zgROSrN7HATI8IAnuDz31WZYEXxc1bqwRgoiYyPs50eGcShefc1SL8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14) by PA4PR04MB7504.eurprd04.prod.outlook.com (2603:10a6:102:e6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.25; Wed, 28 Sep 2022 05:25:49 +0000 Received: from AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::14d0:4458:d6ec:b8b1]) by AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::14d0:4458:d6ec:b8b1%7]) with mapi id 15.20.5676.017; Wed, 28 Sep 2022 05:25:49 +0000 From: Gagandeep Singh To: ferruh.yigit@amd.com, dev@dpdk.org Cc: Gagandeep Singh Subject: [PATCH 07/15] net/dpaa2: use internal mempool for SG table Date: Wed, 28 Sep 2022 10:55:08 +0530 Message-Id: <20220928052516.1279442-8-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220928052516.1279442-1-g.singh@nxp.com> References: <20220928052516.1279442-1-g.singh@nxp.com> X-ClientProxiedBy: SGBP274CA0015.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b0::27) To AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8198:EE_|PA4PR04MB7504:EE_ X-MS-Office365-Filtering-Correlation-Id: fd2037f3-842d-4300-a0ab-08daa111e75d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uZaCbiFlIEbTZgWrUSzgN9P3CN0S4BorRkv88sytBDOsZyFGG7get1V86MMhk7uVcIfp1KV7N67zBR8KQ4dEYHT7d5myyx9i/4B0nSJ+TsHwR3JeTQhopjlL+pkKONmtykXbEgI46VLb9oEcEEzhqp7hnAhWj6F+Qp2LDsVpY25/Jy5mawEh5UdpDvZnzzhaKtAFcNzsKKYgTtW1QFjBn6K7putYkUN1cYdhkTVp9wG2iqpNkkgBjDsp3FdTkGFKl7qjTG/sg60OgwLp/o8KGCwLnKwrEGuwk5hNhOpNBt1JOk8oILrK5ex2sRzik22aXFOF7ry4cBffjwBnp8q8rKGlyRc2rma9f7CChdWUZGRwYmuRk0+mitI3VQLJ8IL4US5AlUVvkFcfwn3hR1enHABZ969I+HVJ4PdWP6DjxATOA4V4ycVVf0dIYjVHDZgqJC3RlGeducJpZfzdbOpLm0/ppiWw1opXGNnxhEOCWHKr1uu6oZdkUUeL8srZh5mg1CGFmpGZczHcUlgoHc+a/aNKjd+jpiIMUFwHSeaIg4SoGQXHZLLsemHUS4DVeKGz+a9D+WYgZ1nx6rlwXiOxp5qxZ0H4mkTyrLAGOF5waKK2HaPC20uzewz9jgnhokoDvVEM64wOr82p7tw+Zn0Np/dYEc0jnKvUvG5JQm9OEZz1r3NJMy+Lffk7JSNpuEvSDRtWb/Z1eid0Bw3uRXCJom6DCZ0wni5zdJ87Kzcs/AsLXP4nB8ptd259aYKbek0s+z+n3HlOaasU7OSzIXZwRg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR04MB8198.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(346002)(366004)(376002)(396003)(136003)(39860400002)(451199015)(1076003)(186003)(2616005)(8676002)(83380400001)(38350700002)(8936002)(6506007)(38100700002)(26005)(86362001)(6512007)(6666004)(2906002)(5660300002)(52116002)(478600001)(66556008)(66476007)(66946007)(316002)(36756003)(41300700001)(4326008)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KKGjekamUW3rMXxyTHwjW0tG+VukqtgnBZbbz9ZOoJGmZz3kx0PQ9Q9vO5TShyndGPVuISk6U8IRttgD48Phl40mL7eY/8FaKx0ZCcOg9ErsOSu83XrZWxRobU9GuxA7z03H8xnFPpeaL2ToHJe7qO4RenFvO52iIIpydUWCe1GRWsVNfdrqXI8rt+C7D0mMYq3pSqcQ0mXbi3KrHtQYz3rv8O4iAu2A9n+1OcN/h7oS+oMl3Dln9XB05m/CEBSPyTDn6GYknIcCzCoHlDDzw4gnAUiEOze1QwIu4oiKcAj7lD0QBJSOFWtkvUS4o8LhC31hjQvlGCU3bRm8XD21bl4XbIWhQ7Xp8u1Iym34u9GALRWQnxHkSaKWZENmv1XTC+9YHar9UsMelk290DINin85Q2nYhIU+IQKewNKkkdGLVmO/wHkb/ykY+hyCnO4PcrfwAeTptfucc6it1/RRrt+Bn7De1h//+benop1YY0veOVBXDTyVD/T5EfufgFmkK/6EdiSBeqMKQp+86hco8MJkGBNyseF5qMpDeQNHztAK7PNW4WjePwicC1X06MsA5e1UQisC88wVdve9Dk8c/WTvabPE/xXMUIX2Nvrt15WbvWCHfxGwPXR17DjRx/ZrlHEuKciw0ZTqpAIvpXi0uQHjtNz+eL5UXMI6ufV5dA7JXtIfIxsep6oOXKPv0gmpp1/EmSiPckdVRVxWto6EPEue6o/OvXUpQOs+Ni+SQChCGIfT+oAxKb0foTuUdOyUkzka6tCWPuZLso3EoN5xVzt9ta4eAaYfZRZsiRlnXEH+69GDtGZgoT1oMcjneUAk1CIc0805WAs7tVEbkXrbW0VybqbL+fvZHl4r9xTHdLRdjGMyhrhVcshmPHG6HJQTKdSr2ZwoZxoRn3JIzmWErTRXxtG/AizU/kRmf/YdnYcjcZSAreG5LB3AuyqgeIIuosTQ0k1vrciyG++dUlROF/QfIYkjRocKAG/oEAKuNp4/0AUVsxlz5ZUtGFid4TFEzkgTXy7F4LlQgY7jWoMa2KqErJrhWCKb5SJ3aggheMwh12BDVQ9ENrmVrnW12h20CypLIYyE9zKrXB+z4g8xU2h7r3w3UbPhV1Q6mCZo2aTeSEsUPDcGnfqm+Ks3ORtRnFKHfq1BD5G//FfGwj3Tb3vb8s5ohcNGn18hPpsJ0O2+ufRXFSo6Db8nTlfv/TCbOXEcjVFxDPO64Ri6eFeTVd4B8bl3dZVQ9L8MwNiwWMxX45d9CMLj+WFJrB6FkuffKUw6mG9jbnXHyxYExFPGoGSDeLrd5IkFKi5W8PQyp+Of+kLwjnVvGL3oLAlDyqF8mI+psLC+tBh7DCbybLpWlpW8GdUko5zNhnkSc09eZkyTknLRCVF4qHrheiH0VWYfeQLS+nNz61W8cir4SGpvR8Dz94U+yNrrZ2YVjN2c3MKgdCmI4BFrjf6UIR0nar6rHXfIsZ+sHNUkeFCyLTPPmkoSLhd0bWaq1buEZGy/PfA/j2pcRPBhmMAyq6x/4AuOA1WUNwUFcqK+YTbi0Y//wpY4RJJ8SpxWvsNyeXrUve06VmV1PDe19phkTJzk0mDX X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd2037f3-842d-4300-a0ab-08daa111e75d X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8198.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2022 05:25:49.6721 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Bus3fKKNsOAcIm0vJPiZTs8OG3ZNyTmdYfQHL/FMnutUBJeKT5An9IGdY/Ar3CIc X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7504 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 Creating and using driver's mempool for allocating the SG table memory required for FD creation instead of relying on user mempool. Signed-off-by: Gagandeep Singh --- drivers/net/dpaa2/dpaa2_ethdev.c | 14 ++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.h | 9 +++++++++ drivers/net/dpaa2/dpaa2_rxtx.c | 13 ++++++------- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 37a8b43114..c7aae70300 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -78,6 +78,8 @@ bool dpaa2_enable_err_queue; #define MAX_NB_RX_DESC 11264 int total_nb_rx_desc; +struct rte_mempool *dpaa2_tx_sg_pool; + struct rte_dpaa2_xstats_name_off { char name[RTE_ETH_XSTATS_NAME_SIZE]; uint8_t page_id; /* dpni statistics page id */ @@ -2907,6 +2909,18 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv, /* Invoke PMD device initialization function */ diag = dpaa2_dev_init(eth_dev); if (diag == 0) { + if (!dpaa2_tx_sg_pool) { + dpaa2_tx_sg_pool = + rte_pktmbuf_pool_create("dpaa2_mbuf_tx_sg_pool", + DPAA2_POOL_SIZE, + DPAA2_POOL_CACHE_SIZE, 0, + DPAA2_MAX_SGS * sizeof(struct qbman_sge), + rte_socket_id()); + if (dpaa2_tx_sg_pool == NULL) { + DPAA2_PMD_ERR("SG pool creation failed\n"); + return -ENOMEM; + } + } rte_eth_dev_probing_finish(eth_dev); return 0; } diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index 32ae762e4a..872dced517 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -121,6 +121,15 @@ #define DPAA2_PKT_TYPE_VLAN_1 0x0160 #define DPAA2_PKT_TYPE_VLAN_2 0x0260 +/* Global pool used by driver for SG list TX */ +extern struct rte_mempool *dpaa2_tx_sg_pool; +/* Maximum SG segments */ +#define DPAA2_MAX_SGS 128 +/* SG pool size */ +#define DPAA2_POOL_SIZE 2048 +/* SG pool cache size */ +#define DPAA2_POOL_CACHE_SIZE 256 + /* enable timestamp in mbuf*/ extern bool dpaa2_enable_ts[]; extern uint64_t dpaa2_timestamp_rx_dynflag; diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index bc0e49b0d4..dcd86c4056 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -403,7 +403,7 @@ eth_fd_to_mbuf(const struct qbman_fd *fd, static int __rte_noinline __rte_hot eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, struct qbman_fd *fd, - struct rte_mempool *mp, uint16_t bpid) + uint16_t bpid) { struct rte_mbuf *cur_seg = mbuf, *prev_seg, *mi, *temp; struct qbman_sge *sgt, *sge = NULL; @@ -433,12 +433,12 @@ eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, } DPAA2_SET_FD_OFFSET(fd, offset); } else { - temp = rte_pktmbuf_alloc(mp); + temp = rte_pktmbuf_alloc(dpaa2_tx_sg_pool); if (temp == NULL) { DPAA2_PMD_DP_DEBUG("No memory to allocate S/G table\n"); return -ENOMEM; } - DPAA2_SET_ONLY_FD_BPID(fd, bpid); + DPAA2_SET_ONLY_FD_BPID(fd, mempool_to_bpid(dpaa2_tx_sg_pool)); DPAA2_SET_FD_OFFSET(fd, temp->data_off); #ifdef RTE_LIBRTE_MEMPOOL_DEBUG rte_mempool_check_cookies(rte_mempool_from_obj((void *)temp), @@ -1321,9 +1321,10 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) if (unlikely(RTE_MBUF_HAS_EXTBUF(*bufs))) { if (unlikely((*bufs)->nb_segs > 1)) { + mp = (*bufs)->pool; if (eth_mbuf_to_sg_fd(*bufs, &fd_arr[loop], - mp, 0)) + mempool_to_bpid(mp))) goto send_n_return; } else { eth_mbuf_to_fd(*bufs, @@ -1372,7 +1373,7 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) if (unlikely((*bufs)->nb_segs > 1)) { if (eth_mbuf_to_sg_fd(*bufs, &fd_arr[loop], - mp, bpid)) + bpid)) goto send_n_return; } else { eth_mbuf_to_fd(*bufs, @@ -1646,7 +1647,6 @@ dpaa2_dev_tx_multi_txq_ordered(void **queue, if (unlikely((*bufs)->nb_segs > 1)) { if (eth_mbuf_to_sg_fd(*bufs, &fd_arr[loop], - mp, bpid)) goto send_frames; } else { @@ -1810,7 +1810,6 @@ dpaa2_dev_tx_ordered(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) if (unlikely((*bufs)->nb_segs > 1)) { if (eth_mbuf_to_sg_fd(*bufs, &fd_arr[loop], - mp, bpid)) goto send_n_return; } else {