From patchwork Fri Oct 7 03:27:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 117543 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 16ED4A00C2; Fri, 7 Oct 2022 05:30:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 12EF542BAD; Fri, 7 Oct 2022 05:29:01 +0200 (CEST) Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2066.outbound.protection.outlook.com [40.107.247.66]) by mails.dpdk.org (Postfix) with ESMTP id 0A6AC42BAD for ; Fri, 7 Oct 2022 05:28:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UZQGY2DEAkIl7/6h0JdVAX8CH0w9igwxs5zw6s/2PQK+3U60PXD036WitqpUaf91X8h6HiLnbMGe9YmyT0TRfz3okJqqMWJYzMVYrsv4UmExsGSUGprhxAnl9ZbfAXPFfPNnIJ41Q+EBiCKhVwcPhHf4aGBdS2oa+VpbsiEhdZ8yTz2cMw8SRuILowpiRt81MPzM4z0xmpqWR0SWg5JzMcegSAl6mqDbHUSfxjpv67VGp3HyJFmeFIj68Qn1FujHxvwg0A9vKBU+aYVeh6HflIvCUI63dWy3DCQTNzfF/Ma2y+psRfNb/oMYy3qSx3kXTV/KsST/Yb8369Zd8gFSqw== 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=tFotG6oXbAT8szBegYdq2kKO/BASzFhtYLe8+UdcGb0=; b=F5ucDkKO+KErNHUJI5WwZErPAd3tqQat5gIV7MAjZxJ3BRm5ukPNX4x4X58LQfb05aCTqtSdpvEcew9/GS1twHszo1dDh75An8xK3NvIWb90gd4RI/wetp1r3zhrsTrtjCVfyjlGSNXKpjeR9OmULdGyuTFGX6Bq/77TqHNFFfCoN33LDJGqwFgUuCo8pt0nSI9ttuxdPhzoUzPCaTYjLIqPYHnjmRB/778M5dXmg8ssfKhBQTU1/85cnkY0WF2sXoj2yYfBDPMJ5ylz/jx9CD2aac+pMLlY6Ne8gQCW/LS6GQV9MQrv48f+4T3JOqC8PELpMi3BFJh38A8Wt5/t2w== 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=tFotG6oXbAT8szBegYdq2kKO/BASzFhtYLe8+UdcGb0=; b=i0Id9QJc7J1O/3ZPLwowxLnkPxKmxEldXDXvdWfJOOQBMmVa6rYuoFygiplckBAaWvwW+s8FHGCR+kI7UXUBGgMzUkiE054dLmjMfH/AG95+6mQRC0NbvJcubYvHQbVKfOfStnlcyqLiV/WqzpRUdJqDIN8lIDP7oXUpeFb5Jrc= 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 PAXPR04MB9326.eurprd04.prod.outlook.com (2603:10a6:102:2b8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.28; Fri, 7 Oct 2022 03:28:58 +0000 Received: from AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::9ee7:dafa:ba51:c71e]) by AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::9ee7:dafa:ba51:c71e%7]) with mapi id 15.20.5676.032; Fri, 7 Oct 2022 03:28:58 +0000 From: Gagandeep Singh To: ferruh.yigit@amd.com, dev@dpdk.org Cc: Gagandeep Singh , Hemant Agrawal Subject: [PATCH v2 13/16] net/dpaa: use internal mempool for SG table Date: Fri, 7 Oct 2022 08:57:40 +0530 Message-Id: <20221007032743.2129353-14-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221007032743.2129353-1-g.singh@nxp.com> References: <20220928052516.1279442-1-g.singh@nxp.com> <20221007032743.2129353-1-g.singh@nxp.com> X-ClientProxiedBy: SG2P153CA0033.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::20) To AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8198:EE_|PAXPR04MB9326:EE_ X-MS-Office365-Filtering-Correlation-Id: eba19585-cc2a-47c2-4615-08daa81411bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Z8p8ma9xcnCaVjYxqpPUvlKFO4EnCUTfuUCL/ECK7LJ5XLUvUZS7gf2et5F4NAD9/ZACr6gxiTAlZwX2xrxu1i/s7C0VOU2f1LqzsYJVp1TzWy1uQeEu9g228Nt1nQ/8lQMIRoZGR8ltik0e0D+VvapDFDFRp+ZR1xa3cfAIDtKoDvlHmEAtWItSJhlRYl03k84VLLnk6UOAp7tXfrqCB7skDd2HjZNdcxBWi3BpDyDpj1BaPV5fLmPxgj/T1pWgyQEGQU+BnCFVi5CkuxdO1qGp3vUNrpK3guF6LKlB+GoLfSZyqPfvgIjj+MgxW2t1rPfXk6Ref2AHX82GA47iW8OVMNS8SfvM+V7KUhcnFGSg2DOgcuLaR7+IxyqCF66kYdSwwxBkL4vMrFwgMsNx4Uc4/w9nXm2IcN6ioN0LA+MJsja2rqRzhrLltNuwQEObXdIRQtv0p7rKCAQrgzSf0FbxMVBafKqUx/2/5gewh45exNQZAFcT6PvgaV7Kj5bhCxoyO6YCD4rJYMwLtSS7VnqnYdSI4FtCLAwUmfdz4yGRahsJ0L2lHDOE/auVTWvkk16hA9/S8GUj9w/YmeYSUvWYtB5Jl929Bs6AF2pHvPNDjO9zGcFGJ2AojvgMrVkCXLS4xsvSyYvKuDtp/rxqo/WQ/v3Xu2Ujj+2WBgoOHM+/pIaYTOmsAWbRZYSP8hYn7h1JXLElU1biBmVr0hRnK8dGgWrNk1C7Ot3U6oi/e/AtRj/qJFZufwNFeqXzkhC6DGGPTHAHJg126D9+57oghg== 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)(376002)(136003)(396003)(39860400002)(346002)(366004)(451199015)(2906002)(5660300002)(66946007)(66556008)(66476007)(54906003)(478600001)(8676002)(316002)(86362001)(6486002)(4326008)(41300700001)(6666004)(6506007)(38100700002)(26005)(52116002)(6512007)(38350700002)(83380400001)(8936002)(36756003)(2616005)(1076003)(186003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MeX/6pNAgjTyA93B+wiFStOpbWqGeKCh81ryESyiGV9HnF8qOQpT4/oRILuTt+Kr8irYbKAqXWgFEZ22sVfHkXRkHuVEvnV9ujI4VQhmN8+qqYna+UhdGxgNowAYn3QpKoGaAb4PdmrwbwtquM/XyBdcBo4Bg7+iZXRyOxGTkLdVxJP4srM4A9tHIf93qjmnd2gbBLn03diUzjjMpcB4jQddnI/qKNlS9+We/4iPtou20RoFQ1odsJEaXaMW30DIHf6m0PsrBAHcEzdDO/VmR2G92b9wZ5eRy//WojvjjQqiQblYeQYwGxauEwfVk/rnO0q0G2VKJZaM2zGTRkNQpub5Wp5/bRi9Hp4+oqQvhzvrTaW3Ea1CKMx/eyUuAPTny1lviyIQDzaW6oBs8bomUGdo0dnu/HIQ6QTSZYgDw3+EBRI+cmDVKXe48xSKIeYmuKyTzpJRWTeFyFej6BddahRWn/kVQt+VV91zuB7ZvZGtwdd0GcsCAfWJIa4JxQADLc/qSaemj1tfElY5u14ANy5Erj8L6XCsCzY4cBAFHvGgMUlZprd4Pxdi5Gk23oroeDrbur69+FkK3+qR9wFUK5PPVNVEdaUCKjaMuMsVtYZGGMFxIHI+ZxjR5TSCq/0JtF7qSQNkwmnthBqbS+frnBLcAaEaXIsU+OBjeyfrBWs7Vdm4qQ13d/RcgxTc58CW2MtERfyFriUBNEuUQH8cbACuMPaUj7qYk/PD+D9bMT2mnSWzBi2PPqUZ5P12JQyKJSS2EngYR7p4hpO4nsWHNxbvSoNvBXQMT75v26EknAEMmmZ1h3tqVz+bXpqtKpzMevQP01r3r7cfHs9u+H8GlH95ws/pEDW22Y//2DOpAx1NfLYY88j3t82h/Tzf2iyLZN2u51ta0gOudV26rvaqHtHWMFj8aD7iXI3Qo4lIS8mypFFFjk7zicpvoBs5VevqITGhWfQJlRJyBUYpGlivhSSCcb3nyOV3AGJMpLAAlLSBySbutZPQWwtHQRTwTkXGhK7leuvp3ndqQ3NwT9fg57oLf/XRD4PtMrNp0wZDhttfbYG0k4A+e1kAjOzqA+HYsbXjvoY22RuSAJagRXuZYZpHLHdDB5TASA9YeNqVIj2+CodGtREnzU1vhrSlZBpBQLWeD2uYH6iE9OIiRuRXW45QV3vHAh63pRwm5IfHFdXOLfhj5dzjrj6lTUGhwgpxnxzxdC2CRKQd8A0UmAThEIYD8ASGkrP2u+kCv50LWCt41bBo2AaeV6ToB6NkFqUvcgQ0uu5HqlUBB35DaqzJgL0qsPtvuzjOUp372ERMTO5A+VtDrxv0x/mwORltLJ0coCE41DuMCERkT3tO2xi9y1k1qNFl1y2xAgc1+qQ5wweEFzDChzdDE6bYUgOJHW4Xq6K+TKwoqQN/s2R6L1DyuYe00FYMckrwlLG+ZbB7tNZsRGWv7135U5UGpRKtDdBspYgJs9nwLbLoTFX4j5yhlpiunVSDTYh6d/OuyJHcH6UlODgZcYPYS9ESgO/VN1Llh7SNfTEdsVC+Olse6AYb4BplTmSXQjdZzVS2Clq6Hv7y0pV6iVlvoLDHdkYbLVrN X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: eba19585-cc2a-47c2-4615-08daa81411bd X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8198.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2022 03:28:57.9757 (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: /j5LJQMDZk3Lhqjkf35nqe25GQ/9dFp4/FOX0jaXg9qEWCU17M63v1oAbaXyNIVo X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9326 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. Signed-off-by: Gagandeep Singh Acked-by: Hemant Agrawal --- drivers/net/dpaa/dpaa_ethdev.c | 18 ++++++++++++++++++ drivers/net/dpaa/dpaa_ethdev.h | 9 +++++++++ drivers/net/dpaa/dpaa_rxtx.c | 9 ++++----- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 3b4d6575c9..a6c86113d1 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -133,6 +133,8 @@ static const struct rte_dpaa_xstats_name_off dpaa_xstats_strings[] = { }; static struct rte_dpaa_driver rte_dpaa_pmd; +int dpaa_valid_dev; +struct rte_mempool *dpaa_tx_sg_pool; static int dpaa_eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info); @@ -2223,7 +2225,20 @@ rte_dpaa_probe(struct rte_dpaa_driver *dpaa_drv, /* Invoke PMD device initialization function */ diag = dpaa_dev_init(eth_dev); if (diag == 0) { + if (!dpaa_tx_sg_pool) { + dpaa_tx_sg_pool = + rte_pktmbuf_pool_create("dpaa_mbuf_tx_sg_pool", + DPAA_POOL_SIZE, + DPAA_POOL_CACHE_SIZE, 0, + DPAA_MAX_SGS * sizeof(struct qm_sg_entry), + rte_socket_id()); + if (dpaa_tx_sg_pool == NULL) { + DPAA_PMD_ERR("SG pool creation failed\n"); + return -ENOMEM; + } + } rte_eth_dev_probing_finish(eth_dev); + dpaa_valid_dev++; return 0; } @@ -2241,6 +2256,9 @@ rte_dpaa_remove(struct rte_dpaa_device *dpaa_dev) eth_dev = dpaa_dev->eth_dev; dpaa_eth_dev_close(eth_dev); + dpaa_valid_dev--; + if (!dpaa_valid_dev) + rte_mempool_free(dpaa_tx_sg_pool); ret = rte_eth_dev_release_port(eth_dev); return ret; diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h index 6fdd57dbc3..f9c0554530 100644 --- a/drivers/net/dpaa/dpaa_ethdev.h +++ b/drivers/net/dpaa/dpaa_ethdev.h @@ -33,6 +33,13 @@ #define DPAA_SGT_MAX_ENTRIES 16 /* maximum number of entries in SG Table */ +/* Maximum SG segments supported on all cores*/ +#define DPAA_MAX_SGS 128 +/* SG pool size */ +#define DPAA_POOL_SIZE 2048 +/* SG pool cache size */ +#define DPAA_POOL_CACHE_SIZE 256 + /* RX queue tail drop threshold (CGR Based) in frame count */ #define CGR_RX_PERFQ_THRESH 256 #define CGR_TX_CGR_THRESH 512 @@ -103,6 +110,8 @@ #define FMC_FILE "/tmp/fmc.bin" +extern struct rte_mempool *dpaa_tx_sg_pool; + /* Each network interface is represented by one of these */ struct dpaa_if { int valid; diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c index 22205cec30..e23206bf5c 100644 --- a/drivers/net/dpaa/dpaa_rxtx.c +++ b/drivers/net/dpaa/dpaa_rxtx.c @@ -803,8 +803,7 @@ uint16_t dpaa_eth_queue_rx(void *q, static int dpaa_eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, - struct qm_fd *fd, - struct dpaa_bp_info *bp_info) + struct qm_fd *fd) { struct rte_mbuf *cur_seg = mbuf, *prev_seg = NULL; struct rte_mbuf *temp, *mi; @@ -813,7 +812,7 @@ dpaa_eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, DPAA_DP_LOG(DEBUG, "Creating SG FD to transmit"); - temp = rte_pktmbuf_alloc(bp_info->mp); + temp = rte_pktmbuf_alloc(dpaa_tx_sg_pool); if (!temp) { DPAA_PMD_ERR("Failure in allocation of mbuf"); return -1; @@ -849,7 +848,7 @@ dpaa_eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, fd->format = QM_FD_SG; fd->addr = temp->buf_iova; fd->offset = temp->data_off; - fd->bpid = bp_info ? bp_info->bpid : 0xff; + fd->bpid = DPAA_MEMPOOL_TO_BPID(dpaa_tx_sg_pool); fd->length20 = mbuf->pkt_len; while (i < DPAA_SGT_MAX_ENTRIES) { @@ -967,7 +966,7 @@ tx_on_dpaa_pool(struct rte_mbuf *mbuf, tx_on_dpaa_pool_unsegmented(mbuf, bp_info, fd_arr); } else if (mbuf->nb_segs > 1 && mbuf->nb_segs <= DPAA_SGT_MAX_ENTRIES) { - if (dpaa_eth_mbuf_to_sg_fd(mbuf, fd_arr, bp_info)) { + if (dpaa_eth_mbuf_to_sg_fd(mbuf, fd_arr)) { DPAA_PMD_DEBUG("Unable to create Scatter Gather FD"); return 1; }