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 A33AEA04A2 for ; Thu, 3 Mar 2022 08:03:01 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 94FAE40141; Thu, 3 Mar 2022 08:03:01 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2094.outbound.protection.outlook.com [40.107.223.94]) by mails.dpdk.org (Postfix) with ESMTP id 4E5FF40141 for ; Thu, 3 Mar 2022 08:03:00 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JLVa8ABb/YN1rULth5yv0bGaHeqxmC+VXvC9SGSiTFcwhlha+aPzYishAz7RJKrdrzqMjRVqiB292PJiQK9Xv0LQjBP+RcYGTqeHo16kmes2fcLBSs0Q+NorV6nhpvXblSs7pr6Ghhjex4y7aKB495fyNjpdy2fkAhpU9vu2q5jGSN9zpFIy1BnlX9kgOJ9d3kWFDj/3vFhGQIlbFF0fe3O6KHz6TI3B2AE7SdqfEc4Nu1vCNdBBrdR7mJoympOOqqFVMs+3ci4K67XM/vrWKuIPuiOuax2eIaxPmzmNrqK1rB6hV3001tWUiIMBSlmrl0t6nIDV0NYEf4TJco4Ysg== 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=qWVOdBc3cfOnoSpE8EQTr+Y27QyNujmUTapaHFKoSC4=; b=XhF7cj2QEstFaiaCoBc3LWMJFG8D+1lsdm1TLq6G/nDhZyqPk7DhAFyJpM4QaYK5wa/aGW7ACcX8GPOgoaQ9Allni6+pa3r+F4bgVr1C+vBcxI8i+eMUdTA2RPqnZmQrqb6RTQ9ihPahj483f+qq48g7zhaB1XYelvCYO6TH/bzxmBv/NwtA8AvKX8eq2gaV93miFQTK1idT6ko+H43xeo11zBBdsZVhT8StywIjnZCJ2n/kunLtZgyzaYnScxtUTzaQ85dEJUFx7lT/gObjw5GjpPsWaro2NE7cExCU+/aoCSS8lnOFChK3ax7rS/GKbTFqPc7us94PjZ9SXVTrUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qWVOdBc3cfOnoSpE8EQTr+Y27QyNujmUTapaHFKoSC4=; b=piMGYUjrxxU4vdKdEgxdDTZYN4kJVC25Cj5v3CQII/1hqiDglhR4Z/nzoxG+TKknlc87R2DuPVPdLImnISSNW7S9EdYukcHoq4x5UoaR82sZv9cT2LFjkDW//HQPj19DMXG8pl5IlJ1Lfvq/fV1GYQu6owU/YgqD9NGUr25bPig= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from CO3PR13MB5784.namprd13.prod.outlook.com (2603:10b6:303:167::19) by BL3PR13MB5178.namprd13.prod.outlook.com (2603:10b6:208:341::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5061.3; Thu, 3 Mar 2022 07:02:58 +0000 Received: from CO3PR13MB5784.namprd13.prod.outlook.com ([fe80::6980:9be2:d700:670e]) by CO3PR13MB5784.namprd13.prod.outlook.com ([fe80::6980:9be2:d700:670e%4]) with mapi id 15.20.5038.013; Thu, 3 Mar 2022 07:02:58 +0000 From: heinrich.kuhn@corigine.com To: stable@dpdk.org Cc: Heinrich Kuhn , Simon Horman Subject: [PATCH 19.11] net/nfp: free HW rings memzone on queue release Date: Thu, 3 Mar 2022 09:02:35 +0200 Message-Id: <20220303070235.89019-1-heinrich.kuhn@corigine.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: JNXP275CA0005.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:19::17) To CO3PR13MB5784.namprd13.prod.outlook.com (2603:10b6:303:167::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e7487aa8-aee4-459f-0c39-08d9fce3d939 X-MS-TrafficTypeDiagnostic: BL3PR13MB5178:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ippZdNkHnEtgRq4+fWat/zLvSU67VJJF9lrf1PauB4eo2r3upHNR5L/w3oQK5fGCxvLgY5XjVX8Sr6tFgTyjlcDdsai6oq38cYiO03uFtLG23vbgdY/VM/70ahzCxwt3/hEm/OptYsLVDxrXmKIQIAy71T/BPv/2PF/HQ8VO4d4AQfzYdV/NpqfPux81FpZZcaNZqR7dUfJqyQaV9ICV8fCKMQ4RmZa3Hoal8vQrKnbhgaxV1XYQy9jRYsTlODfjqhmQfIbhlLdJF+E3pXX3qzVDVBxYZCQL7c+qlT8gAbu3+wzX349EFWDe/m06VEySWFlGdR37vAysl+tCt2XamOq+m+0MLFxeYVwMUzodKocJvf1vWH4Q3HOHs/F+w5pm5D47llEKB6/M869rfjINlh8sUxqv3IXpnMOAa8wz1JxKMhDQI4vgFj/kUpHVjNTe6IZDc3KbGoX1J7sOwCk40GC1tJNl8p6h4GW/pFgdVrDEhewIe6E46c5ISrWE1cuofGzIIg+LzjArHzknnlGObQCpScJ1AoXVzXH3WmgRlwkWMvvoyuMIeqcfZd9WOkR665d8PWzrg4WvsCWXm1UZT1FEyAZ42hAHSPVW/wNofCd67TBHTm4XDMK/TcqTVY7rb6pf5dOl9M+id3jIb9Ci6bjMSDaurSUmMkI2bjtwsbseSUFmb0JiOUKw9Msd0TIjZJa31LVlcJ2kPTB66isC5w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO3PR13MB5784.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(39840400004)(366004)(396003)(346002)(376002)(136003)(52116002)(107886003)(6666004)(6506007)(6512007)(2906002)(8936002)(5660300002)(9686003)(26005)(186003)(86362001)(2616005)(1076003)(508600001)(83380400001)(54906003)(6486002)(316002)(6916009)(4326008)(8676002)(66476007)(66556008)(66946007)(36756003)(38350700002)(38100700002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?icLMDWpVBGwMiADNijCjjtZmakxKnr1BKPggMWGMZWLR5u51Wiu4k6WSfThS?= =?us-ascii?Q?r39ZvgkBHadqGxsWnNvMe0l54eZFsBSTFNiISsxDJMyx24xOD4rDMtfsrZjh?= =?us-ascii?Q?NZhwvpJNwLcUA7kjC0xZde2V0gYKBs2s04Vd3Vpa5vo9COxzwwce5GWbXlOf?= =?us-ascii?Q?kIlBMoH5qVWSS1tDG/m8r8JDWiytvzS7F0EnR1wWyDKnTx0PoBPrWUSvLl5n?= =?us-ascii?Q?G5pCsMSX49d7Z1XGsHbnBp3FgLSO76ME35ztlZjwNgD5x0rJdx+o/vJNnCDX?= =?us-ascii?Q?xpIZNKLqRGUUjcOiNWlsjTAig6dstq0OIrFFujFWsOlBUbiRwB8uakvNdfIx?= =?us-ascii?Q?NQxtpJek59jNt+1gWVrvA4f43BzIzb2OZY1M8cB7DGrNaDBbc1lMaO194/tN?= =?us-ascii?Q?iP6yByY8Rhj7SZcGdS9qo79+L11oqYn94zIfO9wIcPqOWkHLq+C7nLZVlGVf?= =?us-ascii?Q?RTLmBQ8TR1dxLnT/m/n/7Au7k2AUIeXZSMell7Ha2vAXxwDYABcZnhd9PhB4?= =?us-ascii?Q?iAxLHD2ougR4j9IoDi+m/sP/OaQmYjA0reUdjUpcNVwt1g6NuDBNQzjssxDx?= =?us-ascii?Q?duDkf390eaMKtxdFbSytvKJ2A2bGH2mCwYUzBk9mYUClM2najDVqyydicFis?= =?us-ascii?Q?74HmgpkGycWhujDZJpMivpvu7VyVTERnCiE1ux/QsfD/OxWkFjAsYZvHuRl8?= =?us-ascii?Q?vw6li72VZOr6ygkF0eInoVu/h7j2wjWuFcxua9qlXEZJi6zgQ7DowX4efPls?= =?us-ascii?Q?H+6uDvyUXPkqZShD1CevT2MyiS63DhD84LKjOrqw7tM4fizI4sZEiXs1ODI4?= =?us-ascii?Q?k/eVbw+MA1qdI706TdhUkD8dSjLIN2/ccsHFvvkBWX2Snt9A1x80oD5R/FZm?= =?us-ascii?Q?18N0FlAWbxkuZD23IcbgYuo7MOmGdvuiHbuSe8bK8NCTBmBv83VwYaRU2AGL?= =?us-ascii?Q?kYhnoj4e4eboNTMTMAYgGZoVKf1y5envTbmdN9uohc4nhLhCFN/IUn9WmzHp?= =?us-ascii?Q?zmlHKhqq2GqF9RYhJJeIH+4xOTjXu7GiKW84EfXqu9uJSZg5tDiv9SNNybGR?= =?us-ascii?Q?pIvAMmcpHXLZzAnAtiOM6jJR1kbE6U3ojlRupP92clWOr2494ek+syMMI6oj?= =?us-ascii?Q?1mRzCUMptTV6p7m1CJnI39Uq9Pk4i6Qo8x7jWjcn/fktV4YrWrznWCqfkSPi?= =?us-ascii?Q?gJZcJbVlDS+reze+XKO0dPd/jlYK4/skrRETJIQC+7XWt+mdeSgQRA95rdeV?= =?us-ascii?Q?zWvmiStTbEy3K+15hhG/S3MAz2HvT49ysbJPHrfc2DB0ZZyi5tJ/f41k4KRZ?= =?us-ascii?Q?/t211mdMghMxYK7PcKKEi0h6vZkl3tn+1+yHKZja6+tn/owB1U9G91zP7EQN?= =?us-ascii?Q?avBXwr1MPfalp7Mia1nKTZgQVckzYhK4xhr8qYyPPndurYwhO1/ESILB+Ti5?= =?us-ascii?Q?qX8Xr93IfdxO050WxHcPs4y73tDiWMmycvSL1WTiv2DPwEo7NUnBag=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7487aa8-aee4-459f-0c39-08d9fce3d939 X-MS-Exchange-CrossTenant-AuthSource: CO3PR13MB5784.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2022 07:02:58.4149 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3AGnguFycBtXr6nWiiQ57rwgPOXzxoTwbX6///f2hJqNbn4sw2hCmb5P3UUGPCMhLnMPkVa7NpUUCkHMAtBtUnN08S8bHEF1zf20FwZ04Yc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR13MB5178 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 From: Heinrich Kuhn [upstream commit 15174c40b70dfa89c1d94ff93ae756fae8d471bc] During rx/tx queue setup, memory is reserved for the hardware rings. This memory zone should subsequently be freed in the queue release logic. This commit also adds a call to the release logic in the dev_close() callback so that the ring memzone may be freed during port close too. Signed-off-by: Heinrich Kuhn Signed-off-by: Simon Horman Fixes: b812daadad0d ("nfp: add Rx and Tx") --- drivers/net/nfp/nfp_net.c | 16 ++++++++++++++++ drivers/net/nfp/nfp_net_pmd.h | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index 978920f52..dfa984ef5 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -223,6 +223,7 @@ nfp_net_rx_queue_release(void *rx_queue) if (rxq) { nfp_net_rx_queue_release_mbufs(rxq); + rte_memzone_free(rxq->tz); rte_free(rxq->rxbufs); rte_free(rxq); } @@ -259,6 +260,7 @@ nfp_net_tx_queue_release(void *tx_queue) if (txq) { nfp_net_tx_queue_release_mbufs(txq); + rte_memzone_free(txq->tz); rte_free(txq->txbufs); rte_free(txq); } @@ -890,11 +892,15 @@ nfp_net_close(struct rte_eth_dev *dev) for (i = 0; i < dev->data->nb_tx_queues; i++) { nfp_net_reset_tx_queue( (struct nfp_net_txq *)dev->data->tx_queues[i]); + nfp_net_tx_queue_release( + (struct nfp_net_txq *)dev->data->tx_queues[i]); } for (i = 0; i < dev->data->nb_rx_queues; i++) { nfp_net_reset_rx_queue( (struct nfp_net_rxq *)dev->data->rx_queues[i]); + nfp_net_rx_queue_release( + (struct nfp_net_rxq *)dev->data->rx_queues[i]); } rte_intr_disable(&pci_dev->intr_handle); @@ -1605,6 +1611,11 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev, rxq->dma = (uint64_t)tz->iova; rxq->rxds = (struct nfp_net_rx_desc *)tz->addr; + /* Also save the pointer to the memzone struct so it can be freed + * if needed + */ + rxq->tz = tz; + /* mbuf pointers array for referencing mbufs linked to RX descriptors */ rxq->rxbufs = rte_zmalloc_socket("rxq->rxbufs", sizeof(*rxq->rxbufs) * nb_desc, @@ -1745,6 +1756,11 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, return -ENOMEM; } + /* Save the pointer to the memzone struct so it can be freed + * if needed + */ + txq->tz = tz; + txq->tx_count = nb_desc; txq->tx_free_thresh = tx_free_thresh; txq->tx_pthresh = tx_conf->tx_thresh.pthresh; diff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.h index 42ab369cf..a89e97b95 100644 --- a/drivers/net/nfp/nfp_net_pmd.h +++ b/drivers/net/nfp/nfp_net_pmd.h @@ -235,6 +235,9 @@ struct nfp_net_txq { */ struct nfp_net_tx_desc *txds; + /* Pointer to the memzone for the ring */ + const struct rte_memzone *tz; + /* * At this point 48 bytes have been used for all the fields in the * TX critical path. We have room for 8 bytes and still all placed @@ -370,6 +373,9 @@ struct nfp_net_rxq { /* DMA address of the queue */ __le64 dma; + /* Pointer to the memzone for the ring */ + const struct rte_memzone *tz; + /* * Queue information: @qidx is the queue index from Linux's * perspective. @fl_qcidx is the index of the Queue -- 2.27.0