From patchwork Fri Oct 7 03:27:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 117537 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 B605BA00C2; Fri, 7 Oct 2022 05:29:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D78FE42B6F; Fri, 7 Oct 2022 05:28:48 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50051.outbound.protection.outlook.com [40.107.5.51]) by mails.dpdk.org (Postfix) with ESMTP id 8FC1B42B85 for ; Fri, 7 Oct 2022 05:28:47 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FJne5eRxoC77Y3qY7fuglscFrVdJBppZGJwiO6gP0wHkl87aX22l9hhStIyWvZ5qffFt224KwHdViVaQpaNq2GD1WPUMc0hfqjSIYLOar+6+0M7BwY9HLlcnkVavxHjJGV176JpZtSHG8qdEcjnittgi3s44p7cwIJWDTbJNLkaDgvAZ1hbhI6w3ZCaYD50yrmrSzUutIfiaVc1Zm8hHPaucqIdwcNPpZB3x53YuW6vSh/tPxDaHsbZdFr3TL45jWAd7LwD6Y/+mMN2Yekut6h2yg3gjQw1wHq6Us3s1gXAHoyhUbe7mq2qN0DgVwXKkouCH6OODIHYxkZOgZao+jA== 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=6wY+OeCXwTswwdTCfBSS24uK/zMhXdv9rxOx/w/Y2O8=; b=L859ikxUHGIGswAgjsGKhWrcxuL5aVZHfRTMRX5PkoMscYNb0UALrz6aCBwGoA/cvDUsFsAjsSP9oG+8CtIhFobS4uAEAab3ISFjORH1XjMFBe3IvTVCPyajqIsgnV7R3N+6+N0dZ76JcetwY1jF5ZbTuXmkKDFASx+S5xAX8eBPgBzxaY/iC2zYjy84XimNTwqPw/5rBFZDlMGi9DWLiSgrMj8CkrFKY2ESfs+e2j/VoECbzy5KXRV1RiKR7SwG/v+LVGdxuB4b/+JBl0D9cfEoYpvva9HYTMF4j02DhxFBhS71iigvZiYeHX7OqQ6GmhXpwJ3OO/Uk+bq6SWlE8A== 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=6wY+OeCXwTswwdTCfBSS24uK/zMhXdv9rxOx/w/Y2O8=; b=konuqZr85VWNDSm4mvLWfUoBmEc+p3asHeDyzbs/DrO3fKEGXoUI+qsjsJkG8NACaw7ehn+2SEcAMaXHdEkucGMYgWz9ZUZIKra56BuKwoIlc7x1F4Allvi4RKErZYOR+pycEK58ooJGYd0S8wPAgiV52gxxqwt2dt/1sjAxJwI= 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 AS8PR04MB8641.eurprd04.prod.outlook.com (2603:10a6:20b:428::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.38; Fri, 7 Oct 2022 03:28:46 +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:46 +0000 From: Gagandeep Singh To: ferruh.yigit@amd.com, dev@dpdk.org Cc: Gagandeep Singh , Hemant Agrawal Subject: [PATCH v2 07/16] net/dpaa2: use internal mempool for SG table Date: Fri, 7 Oct 2022 08:57:34 +0530 Message-Id: <20221007032743.2129353-8-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_|AS8PR04MB8641:EE_ X-MS-Office365-Filtering-Correlation-Id: f0e8a6f1-0a0f-4cb6-a0ab-08daa8140adf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0pTHXk/rzNSdJUhL2w10hhgjPaybZrCHwoUHPlB6ZJ7yuWywjMs8Q1gZj8wSxs3Q46u8ue2XHTqrpS42felrFHVv5O9qc+CMlObG2I8qBjIdPkTNhptuFSuN3v2VNnqK3hGuXa6fVfg49OCy+OW6KUV5J8fdSaSgYvIwehebrhfJTwhMd2O7bDimVT/DkwR567r8NwbichhfzXq45Sbw+A7OwzlLyy3OR2g3OWN3FjdjANfO1sLbQjOOIPxZFOBnR6O3indZbiVZnobMOWVpCPTAl3IoQthSn+FsHJa+H5lQMGGJGEivIVAhmRvukAk+FfrPLmF+wGIMOl1eyhnDbrnFh+BHmSBsXQL/+EWP+LnKdDdJQT6hBLCVQ8YmGd2Bz0Z3HcZZdyr1XnhWPwvhVGLR1hA44VTEt3B3uykhKJUFYryAY1rcW6NuzbcH11oWNufJqwk7RDmMDqRqSLOuYZs/3xWTf7W/M4ucLjTIefJCDWC98nSLytokjoMCae25evdf15UymguhEuVau1BbpKLK1OmIo7xrbl5IwUoXScd0PBqodjQuFFJlbpP0zVhRma7eXrz1ZeOBOlDJOCMuj19Qol1ZAPrEIB10nYuSRCu0hJscPHohwzno4rJuoMKMeYiEY7FY8BqmFZJdQQqvBtQoN6jS7P4uSKOHEPynbS3gAff/HCOvvDWKca0mWO7NMlDEwf7PjRE7E79MWsu94UUCFsP2L8ZXbqoqx9qn0fETPG6kHp/v5JDe4e8TwUQn9X9OwjNauH3AVOthwua7uw== 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)(39860400002)(136003)(366004)(396003)(376002)(346002)(451199015)(36756003)(54906003)(6486002)(6512007)(52116002)(26005)(83380400001)(6506007)(86362001)(5660300002)(8936002)(41300700001)(2906002)(38100700002)(316002)(38350700002)(8676002)(4326008)(478600001)(186003)(1076003)(6666004)(66476007)(66556008)(2616005)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tnfyImGcotfRhA/naY9NtYgHDW0uvSvBmujEo/SdQHXhErlRp8DJ9VznlQkygthcyoHii1f/6yowglazJnu8oizLdQ7N/X3CgBTbHDtG32syc2PO28EZebXB8p/rs1L1q/CnEkgEld2bCBL9HgeVXjjMLOUfUkak5JGR59krGXybK0+YI4/0WAyQfhBZnGjDk9YRSLxhQAx0EW9YPs6Gvdgce062AUdppKpEDJTWnId5hylBauHSxFr+NpQa2jsEy+wt3aPKPGjv8zG8RNeolU2K7R28MOQFq7fIC1Ce7k6YpMZkV4Yb5OORNPTyjtgfX1dQau+2dMPuyLbCwjLdrPIPATYPBS5iGfKDpvtk21t6Mv/6WFXQglh6pkG0B25xPo6Pqw0rjDaff6AL5xAMwS83UwrNQFby7TN4ehOEVCiZvLzgX2rqaEubiyB9g3Zdx1WM1PZrYkz69bu4v0uCDKKbjcxYrVXGZ7PiANB2I2qT5W/Qf3k9kUjBi7kXJUvAP+y0drSRz1ASlWC+RNshLI1V89jZCOmGZYBl26fGdJ92wrs4Z9CRhlOYWZTH6IxmlwWNcuy0MjibIF9QageHAoaCHQLcr3idxep79ckJR399yUdDlYQ/HIkA98oWSGd7gx3oi1xZXkPpIgUJuu1PpobQXJGeIQ//tiNnPHAfgyRit2wnKb3D5ceMCPmYmLEgBfHeR8rHx0iQfFyhQ5Kq2qHNf6kAamKZ+HMDha2KoT+e/pyZcg1nq4ujta96EeqMUEn5WQQxA0LMtWDVoCwhHFYIjkpAUXW5vAmkKM+OsxdJ88ddY2HD0WatP74FJvMelgsyXiJoPh0LxoRSRzbxbv4CHhB4lo5CQUhqhXlzxTQfuFZBXdL7UmRss3JaOWi3/2ja9m9UGfiDael61ts/oJ9XIpiLCpvCc37MjfzXegaGXwaajqVKLhAnA1RONmQpohf7ympsKgzz2j581EI6wd/Ojq2ft4OdSEwnfESNtdijRqUyzgqum3ACkgZIBJHVnnQ4RIGwh652mH8seGdk4764BEox07oG4rrp3SY4Qc1iThnzZE/5M0v1Dqwc1hYCgCMxC+ITMyWalLi+6bH3pakOPXa1bLkPXqZn+JuEddS8q9777oa9G/8SqAP+EBV4DpgJA9/NlbKo16Q1GvJNiKOCtc0gtmmBjCxrCyE1yZrEB5XnECQlfZGEai7VsNDaCrbRqqG0O69lxNdHkMR+MH7U68/Q1AY3STq8PFJEBWZNLRn7jwV6pq+q1L+DdpLaedd+/ua4BzyKlfmrhgsiHrRmov6CTNxE1b3h+hRX9mWl4t0HPYpPC3jBArpu4s+M3LcOOeVeWPk9+cmdLtF0RudaZnw+9cOVtFQQRjpDf8h+cAUCPjMeGtDX2Fzuzr0Je7rjizscBmh/LtW+zME4B0jTIT2HaaDjrempy/hiS3STo+XmRAU7CvdlLdZ8n25JANe/URL8D1dUN6UG9tdfb3tOeIsGvL9uR/y/dis0HCT9Is3KsfMTQWQihnelkU8dJiVVWwwEC5NvraQnWDDtSvQVFV1ETQLixvJ+9/FAzB3RQtHK8BTHIKVgADYwVZFv X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0e8a6f1-0a0f-4cb6-a0ab-08daa8140adf 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:46.3617 (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: jVPwPVg8+hRvAXCoEOUEialYPjXq3jnx5h3BEZCVoOcNKiapBG/u1bhfJUOWpO3t X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8641 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 Acked-by: Hemant Agrawal --- drivers/net/dpaa2/dpaa2_ethdev.c | 19 +++++++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.h | 9 +++++++++ drivers/net/dpaa2/dpaa2_rxtx.c | 13 ++++++------- 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 37a8b43114..679f33ae1a 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -78,6 +78,9 @@ bool dpaa2_enable_err_queue; #define MAX_NB_RX_DESC 11264 int total_nb_rx_desc; +int dpaa2_valid_dev; +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,7 +2910,20 @@ 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); + dpaa2_valid_dev++; return 0; } @@ -2923,6 +2939,9 @@ rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev) eth_dev = dpaa2_dev->eth_dev; dpaa2_dev_close(eth_dev); + dpaa2_valid_dev--; + if (!dpaa2_valid_dev) + rte_mempool_free(dpaa2_tx_sg_pool); ret = rte_eth_dev_release_port(eth_dev); return ret; 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 571ea6d16d..53e06b3884 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 {