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 45581A0542 for ; Fri, 28 Oct 2022 13:32:33 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 414C840693; Fri, 28 Oct 2022 13:32:33 +0200 (CEST) Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2082.outbound.protection.outlook.com [40.107.105.82]) by mails.dpdk.org (Postfix) with ESMTP id 5FA2240A7F for ; Fri, 28 Oct 2022 13:32:31 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dt9YOPUmZYUkn6MH5H534JDOx1Miy5COisbyDswWtIdOUtYmFWlGVrSGkpm7VS/psUxxf+flp7e/AjfIJu/le+auEjaAGXBpypLvRPdCYJT4ydMPFe+nq7sjxkXxgsBhKv9wLgGGdzGn6Wau47y7s+chSUucnthf99cg5CSNJ6JiG8Fpy6Px5MDXe9SiiR0hTJ52iZpv5MRmSuqsUaDoxkXnVqPdUS0dKOEtkoWJEFTYVELLs7qjsqZyWHLBhTd2X7EkJBVGDjP/EIZ+dkqrw2MEfUak1urwPCI3U5kFjqj/y57SZeUuwgm3a6TwRlUmyInzaKP3FxxmCAYVuufirA== 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=UH+atUkd/VTSQd5yJxc5Uo+fGEeSughP8VRBgDZbeLI=; b=kJs12VBBl1DyFeGETINzLg7VrGCC4So8dgijNKOuv684wXTF4dom3kgZ0cZggf3Q7sU+LejUsAqCXSTNalJrC6QtajtRfR4uNAp3CoAuD75fLEsTCtbJxknNGpZtzhXbGFswPs0YufFI1hrttZu6A4e9yWbncfHkn2lbnB5l0hiBGYxiYr6MrSxaMZng1bOTUAms7xKY1Eam4xKZdn2sHXZy3o5ASY5xwsYRmqXJXcpIIki0c9QCBnIxUD6BbGTFfbXiHI58UdEXVPt0Jmvla8dpOuxfiIW6Zay1aG55U3wy3SL9lORxKY4EyaAzpTUNWELjhw7xjqeeVyNEBecGqw== 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=UH+atUkd/VTSQd5yJxc5Uo+fGEeSughP8VRBgDZbeLI=; b=MWtxehEJPcn70/wKoxmIr8AFHOQQI7jHV2oxJpa038/KXyYx7bwA3iG7F/Z7FAG57mi6admgz5/uteTojWT5oOhM7AHR51T8CdkBi0CadM+zVc2NrlvqgqHE1EubZikJuWDLI8tt90YA1SCEwi4OS1O8QtNs1Z0o7EDP1QfUg00= 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 AS8PR04MB8532.eurprd04.prod.outlook.com (2603:10a6:20b:423::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Fri, 28 Oct 2022 11:32:30 +0000 Received: from AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::d0b5:8ee9:ca90:2e49]) by AS8PR04MB8198.eurprd04.prod.outlook.com ([fe80::d0b5:8ee9:ca90:2e49%5]) with mapi id 15.20.5769.014; Fri, 28 Oct 2022 11:32:30 +0000 From: Gagandeep Singh To: ktraynor@redhat.com, stable@dpdk.org Cc: Gagandeep Singh , Hemant Agrawal Subject: [PATCH 21.11 3/4] net/dpaa2: use internal mempool for SG table Date: Fri, 28 Oct 2022 17:02:04 +0530 Message-Id: <20221028113205.2349198-3-g.singh@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221028113205.2349198-1-g.singh@nxp.com> References: <20221028113205.2349198-1-g.singh@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SI2PR04CA0010.apcprd04.prod.outlook.com (2603:1096:4:197::11) To AS8PR04MB8198.eurprd04.prod.outlook.com (2603:10a6:20b:3b0::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8198:EE_|AS8PR04MB8532:EE_ X-MS-Office365-Filtering-Correlation-Id: 94f76393-2b5f-4fae-d1e0-08dab8d81965 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dnmoW4LuOHFnI0YEQ0/VxWEhBnC3UZ52GdP7cU0hnu3/BIxm9Lv/keG7E4bpFULrB6KSkPuPrCXEXg0/UdU7RpYpWU5Iiv1Mn/Fun2j/vXFmoQCCZZ65sfTGAXfNPz6KBVAHcvt9Yx2tOsvV8KkOlGrnVDlA2yHfTofoBcGwM8fCyIFWXWbZYSuL3f7qw6k1o7uCSw+Co1npRUxPmvcRPbUvMFJ6Y/NFKq4kE0OAotEHe60o9RA/IWLVnM8rAsGKou4Ea7uYjx6dJp3Evse3PdRrPeKsgpml0WkiSs2iLNT3BI5VxgOXTzyrNerjl+rv1Jjaz4wWLu4XSLqKUcNsxmyNgBZOmigywkWtX5gf1k6zScSRswaL2fGVutu+szxHUpDU4aOsTCcTfPC8t6Nbxy/qgf4xzfRdCnVcsIUQlVf0ftzLv0sUoT/fzJ+8vjUPJzgUS5WNy/y7eS/EIOL4gyjxbj3m5N76xzOVEeovpuJ8os6MLf09vDMrZUrT0CRDv39mbvONVa6vnbRJPJFiyXifpgMQIHvYdyO/5dslmi4FevFLQsxfh6JCSOl4HEwviMeTb27qKWBGFm61PWlstzYhkhTPi361q0u3j+LkvgXlkL49hMA5oPp+tb5d1CqnBc/PDyfjJTqoi240gto4uZYmS+Bqe2LoTrWF7iEqH3WwiNOSWpBRZN+crm3hIOGLDusiDTambpmpW7gqeiH5ORSsgezgLLv0+pIbNjX3Fs/x/cUYMDzAubAc9wlHlBFh/E17kWY5PetpIAvItIQ1dA== 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)(136003)(366004)(396003)(39860400002)(346002)(376002)(451199015)(83380400001)(86362001)(38350700002)(38100700002)(2906002)(5660300002)(66946007)(4326008)(66556008)(66476007)(8676002)(41300700001)(8936002)(6506007)(52116002)(6666004)(1076003)(26005)(2616005)(186003)(6512007)(316002)(54906003)(6486002)(478600001)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+jaWOB1M8a9TqmVCC/yPSsCdZXQO0KnpAj34ulKJ7P3ZwMctE2ChycdErkpc?= =?us-ascii?Q?zOGCEgIeS5kuyEpI6jScDxVxrquqOFsPqGZPPiMs/jb1Y4MJ0rfv7eugDSMQ?= =?us-ascii?Q?fNxmgJ2wBH+dtqsPz+8JHjTq7LMJBf38ucOA0/E8ZBJYQfRIBkEWNY6RB70a?= =?us-ascii?Q?7cTJvfeiUb4JNsAygtbPUrQ7QknP0oyFk7/uqUm2ALMIwzaSTVhGdiidUWYi?= =?us-ascii?Q?nGljK3hMufU1OvIGv1vzhk8zkYyWyGYGOI7V5zc/SS/njT+pl5NpEJBZphOj?= =?us-ascii?Q?3Xsj15CIeQl/TWLAcpcRgdFhETnpGY4cF49Sarjl0VumfgRmQkXrvfT3VcJV?= =?us-ascii?Q?DttDkPXs9SpnRQyMLFC7tnMD86iPG763lRH3QUqm7N/bLjNlMBfNLHCWEE0B?= =?us-ascii?Q?fY2DTMwpYchfW9EYOTpyBmbZ/IGQRK2uenQC1wwm1FBmHkVsjBgvFW6JyuLb?= =?us-ascii?Q?ZTTrRNUAIUAfKQHU2XK9dJYV1J58r3jFHEuMlH5z1GmfP+0NtA6jxFAmX6y/?= =?us-ascii?Q?3iykDz+TWbHcLPghY4YlbMck/bp525ialvYT071smawM2kiJep6fQzKY2V4N?= =?us-ascii?Q?Um9ByBTdUHdq9seQPrFcygt2kp1Tt3IHUmeBdKcrV4QAk5fTUo8Q0NuMa01Q?= =?us-ascii?Q?3AdVzceaqQAhk87vlBNcWMoIeGw1XvJtbIDtg5dmMsz+dS2vknBQc6x9YD8C?= =?us-ascii?Q?4VAYUnnFIbtMV5vxbKrPTTCYENw2CrG8fymj8ON3X4jPMIxvyPZwS4GRBUEX?= =?us-ascii?Q?g1e59/TxMJ8c1Xscz565fWVAxx08GBUcohkH3qrKa08c59Xs33Wdz7bTzINq?= =?us-ascii?Q?//ge0UB4VwgqfoTcCFXBzM8YwzK6wPvLgHOaVHMCabV56TKkOpYyaACbgeZE?= =?us-ascii?Q?y+wBCrL1mRp4m46JE++BB0AREQfhWlU8sgvRXI4g9TbYlB9xEoCb9KasUkLk?= =?us-ascii?Q?K4ZjsDWtysXODrNH5+WpIOaCPSEcv5NZ3tq+HUuZWzTRResW+/BtmmjKiI7/?= =?us-ascii?Q?8C4gx3zmHCJoYr7ZS+TVt5Jiyse/A3d/pHF1bPvLBeC6fy/Sx+9My+2FE/MP?= =?us-ascii?Q?CYQi7/oA8AznTXAttf3rWgWCZQ2upLRi6mZsxRbk0J6U08RN6FrTr/3dRhfB?= =?us-ascii?Q?Fa99NMXeyX4eWfgq1pCd/yXGOg+OOFYoQwiTOsSMNDUBTdqwYdP0lr+M7dJk?= =?us-ascii?Q?EbAwfv1FrJoyt3zkJW3DaApi/G7AeyzfO8rd0AuIXQdjDxsIBpJ35YTrvOFW?= =?us-ascii?Q?yxROdVLftj0jg5lkrbEY+DFUSk+DFOqe+nRoWcNdgZVmp705x4N0AAVBs16/?= =?us-ascii?Q?b3C6uG/2QJvF4aQME7Jsr9Ul3URqDvQW0SDKX/eFE0HKeMces3JiIVZvRydL?= =?us-ascii?Q?0iSsc4u/e5zjgYecB/HjMJ05PSRBF/kh1xAS0fyNphpV7bPtaGu5ocb/xNDL?= =?us-ascii?Q?aS0yPM6BbLAOUM6llJaZS/I0xZsHx+ijYk4ZXaxyrQkJz0NsuJ4Sb7mms6ID?= =?us-ascii?Q?0gBHV7xRfYCJbmGGTHjewpEoh9IVEDRdYjToIHf9LjrIldoJEMiHK6u3xsdt?= =?us-ascii?Q?aK8jhdDp3/GakCdfkBqxkXWBlCAlswkhphk3z6Wy?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94f76393-2b5f-4fae-d1e0-08dab8d81965 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8198.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2022 11:32:30.6146 (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: fnKIQGkTAl0jQhcx+3nGIuVdERZA/dR4+xaRvFDfNYbrhlaZ9wC0n0pcBzcH68ql X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8532 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org [ upstream commit 75e2a1d47326ff3c169a16156eb32ebeea44bc0d ] 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 | 12 ++++++------ 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index b875139689..eb2d87ecbc 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -74,6 +74,9 @@ int dpaa2_timestamp_dynfield_offset = -1; /* Enable error queue */ bool dpaa2_enable_err_queue; +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 */ @@ -2864,7 +2867,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; } @@ -2880,6 +2896,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 fd4eabed4e..3de2114901 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -104,6 +104,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 9fb6c5f91d..6ffbfa8c78 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -381,7 +381,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; @@ -407,12 +407,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); } DPAA2_SET_FD_ADDR(fd, DPAA2_MBUF_VADDR_TO_IOVA(temp)); @@ -1273,9 +1273,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, @@ -1324,7 +1325,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, @@ -1599,7 +1600,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 { -- 2.25.1