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 F1F96A0350 for ; Tue, 22 Feb 2022 14:37:59 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E375540DF6; Tue, 22 Feb 2022 14:37:59 +0100 (CET) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2128.outbound.protection.outlook.com [40.107.101.128]) by mails.dpdk.org (Postfix) with ESMTP id 1DA0540DF6 for ; Tue, 22 Feb 2022 14:37:59 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lvaPl2ixirMMwmQthgFctr/gfCH3iXlJL1n/NFRgqizK3+f5axGpXJFiTATvQ6BY3TJv7bSuKYpkXLx1AxMsRqSpPQGgMA0D4DY/HEWHXiEpxD2kitOyULKB6E/PRvVgDS4N04SX33Io3EStCk0WksO9d6by8hJs0QCWUwarpBn5qKUhv6Kyp0V8yo0S5ke1YQ2l/CVkYBPWrq4eO4XZTFzl17N9pqhzkU92DZyyaIrAIYwOFqYMKz8sEV+DxZ3C4BtZ3yl6VRI8FheZVew/cBg4R3vpeROfQfb2yWdlYD9ErDJ0b1cYEAiZjMTE7icqQCpVl6IZ66K6gE2KEWpgSg== 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=hdq8XZi7iw2AVyl99UcRDHSCPq+tgJJuXCCFrNVb4sU=; b=nUCCf80OdWnb2Z0/nz2hLEIQPunB1Ok4sH4BEWXC0VbPDiUiDUhYzr2Rn0cmBNiaRRxOFdmb9h/DzCJRwvJjdtoBsRgNfIlByiU6qD5Ch7o5QSb57C/jldBu3kXbwAguBp1Xfau6IbTqxsRwwx150lH4d/LcjTZFp4IrG6TgOAotW2agKN0SlakeKf0Il+5lNMGznYHRVcyA/HlzEfijwSymkB4HHazx8HiOAsWryNxKR6ZI43CJWLpDDTumHXohkzwTAJt8HevSQEdGbK1PbQdUelBLZOV5YCgKcTW60Iv7PMdaQc6Clb45s6AOHd8gGFywWcraQao0AVkKkE57Iw== 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=hdq8XZi7iw2AVyl99UcRDHSCPq+tgJJuXCCFrNVb4sU=; b=DyWOP2wxGFtqr4HelD7QdtAnKYqMgIuRK0P5etKuKiiSEbuYLGtZHyKNzpKo/I1hh6uvJ8ae8QERrW1kFwe60oS1jfBJsvrZTarthOpHQLvX8uj/eL3KO8UQvSKp4H+5ZuSk76ks1bn508lN3c/pKK2692YJZDnDnN80AsL7mQk= 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 DM6PR13MB2921.namprd13.prod.outlook.com (2603:10b6:5:19a::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.9; Tue, 22 Feb 2022 13:37:55 +0000 Received: from CO3PR13MB5784.namprd13.prod.outlook.com ([fe80::bd16:f5fe:de68:97df]) by CO3PR13MB5784.namprd13.prod.outlook.com ([fe80::bd16:f5fe:de68:97df%2]) with mapi id 15.20.5017.022; Tue, 22 Feb 2022 13:37:55 +0000 From: heinrich.kuhn@corigine.com To: stable@dpdk.org Cc: Heinrich Kuhn , Simon Horman Subject: [PATCH 20.11] net/nfp: free HW rings memzone on queue release Date: Tue, 22 Feb 2022 15:37:27 +0200 Message-Id: <20220222133727.71291-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: JNAP275CA0041.ZAFP275.PROD.OUTLOOK.COM (2603:1086:0:4e::16) 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: 49e49125-6785-433d-5dfa-08d9f6088764 X-MS-TrafficTypeDiagnostic: DM6PR13MB2921: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: GW5JpBXW8NI2/d8yZNhEtDpwBEQaD1lVIOQ45Jujh6+5Mas8vl6jQoypmP6yryQHutHsdM1WI39jDPZcnvbnVOuRugrblohDE28pxkZkofG4nm2VoFyUF1Xp39eAnl8wPvPYYSATtN6n9KUe+GZasxVilBo5s3Johelef0ENVJ6GRsr58EXh/31HLyW2jgN+Peb9lSaZAxuQXNgKdltAoWbHekFdH5hQId7t9yO7L/nWYDC01BhMIjvaq7nD6Hbp8Yc/6n5h9BlK3IzdXI4zIYeSSOj7zdFxMOuoH5Ep6wIRoTYs25ONlw8QQ9S87uY6YFLKN89ZEcq+8D7sxVXOEUskXqYJHkpTCGED5QqIaNvYkrvmZO5ejrYVUxx9KuydNMoLqmX10LVa/l5pDJoauI7W2VN87X2KI5jnJHUY/kW1mN8u3QlpcQW4s6K97XYF6nxTGn/8SrCSh3fkYmvdYeyFd/s2h2HM3IthgZUhJrxFKDecacf6MumEU/dI60k2B31CVWsmSO0yYVL5wtkerRCusxU7iEmdBTgxrkBlH6J9LcS9jinaezbcDGxvyWn9d2t+IcFFtCBhU85HFwJw1G2yaO1LWsq+FE9zzFbR18SndMdfpr2HLNetj25RO16QYLReopCg8SL//XWZKyoDq+cIBhB0V+WhELU/ip3GoR+xbrpY6iPYF2KRdIWehIEUCFawGfUdV3i+Yq8+fCKwvLSju7ID3iWs8p4NwJ+q5pbFWCC70flhSJmV5jO2dPqs 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)(376002)(396003)(366004)(346002)(39830400003)(136003)(54906003)(316002)(36756003)(6916009)(38350700002)(38100700002)(2906002)(86362001)(508600001)(66946007)(66556008)(66476007)(8676002)(4326008)(52116002)(6512007)(6666004)(9686003)(6506007)(5660300002)(8936002)(83380400001)(186003)(107886003)(2616005)(1076003)(6486002)(26005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hFnxj3h0g51Xe8fnVRYVFbPZ0in4DbYJQZB2Qu51/qAqzp+JtPpV84S3giQR?= =?us-ascii?Q?bQF3+BwQi/8FDts7DaYj8pdnaZBLXnMvVdJLfctcrZqpFpIjD9Pz3WgSCdxl?= =?us-ascii?Q?qWxG58kDCWWkMmz/qh/jtiYwg1lk/+djMAluURCCpBpO7hlMK88KbKWO/R68?= =?us-ascii?Q?beeGlVasQfyGVO65u04RdA0p2abp3WLVpQgoi7ICEOyknChsKK56abF3jis7?= =?us-ascii?Q?EYoX5svu/1qRhLqIJI2QbArXlicTN5X+c9pzBg0/frlcCB04TnzUQRfY6XB8?= =?us-ascii?Q?TQmokejls6jJi0NnZ841vrATaYmm3MV3Vzg6fYt5p7Rc8YTQfP052MZP9E8H?= =?us-ascii?Q?hFJ+gQRb79tNxJTR89HUG8mmIfPBRhqoQ0Z79dnfF+thrNuefbio72AIItgu?= =?us-ascii?Q?WSDhXOYH3QnGRPmKWHfOktY4njfxngVV8OdZWcfaavIPqEgvcB53TGXkFxpP?= =?us-ascii?Q?YuAYZGIzpt31zLm6tXxmgK8TK8oGxxcQX8XwIuNx43EFvLfClBxX7CstGumQ?= =?us-ascii?Q?V0hObsTKRix0aJJbaj2l7UyNGHXZvAzF7kOqmFQ+iN3K6xJjCQv5tpKbeOep?= =?us-ascii?Q?55zdr/kEY2LYlnOZrJo2dZwSzmttf/KuZMgZFPPWdxfhKZ7gnlgikxVPgf2J?= =?us-ascii?Q?ZyPLScI+XFJMnK6VQll00DrZuBnn/O3LqRsUaxb1E3/1PP8jXr9b9zLvwgZ7?= =?us-ascii?Q?W0WqthrtMuT40euAlJrpYVWpKPydx2AvLEVJqSjWYQDXIwdkJz0pRxYx6OZl?= =?us-ascii?Q?a9jDtTfB6dPGCKjxzef8vZq47G5dWeY0KO2UHwLr59BnCsZ/l+n2uMOWq70E?= =?us-ascii?Q?+lPoa5ovqyVSbpDPotVR0J8aSn0PVQYL4MHnwwHlKIbY/A0SxOg0+A474lvh?= =?us-ascii?Q?tFMLLEOU3TvzEy6eFFD8U5tMy8mVIYX23GhU5bL+SSOGburBxQ7VJ2EbksqM?= =?us-ascii?Q?FCATLx4V1mjX/5hWIecWd0vXWvlzi+yjJrA2RSJaySCaezJJgNvX7I8LcRpR?= =?us-ascii?Q?DdYChfIOHgUByPKr14nWyf5Yss/4EBLP6jqbOX9QuzJMDw7CgGPNk3Tt33Za?= =?us-ascii?Q?kq0NFBbDwE71wAVh6AtJrb3S+fb4QorOcKDhANT8W7esa+jFGKlbTuZndORN?= =?us-ascii?Q?dmbha5mO3HfkJ/wTvs+CaTJh5pKqLYblDyNzNB3i90xEtbH0iT7PqOwQfjR/?= =?us-ascii?Q?rr19um+aMXBLaHlQMs0MQ0UKvXYAMMG9DmyW7/GA2Rujay8VI4WLwfUDLYsa?= =?us-ascii?Q?lZ9qF581F9TId/TNK52l0HQZoM0W9HH79+dfk/zL4rRA7ZRSYfU54a6ihEn+?= =?us-ascii?Q?JfSEt6EyZUpqJnqN9bUR0Kto/15jFn8VjhOAb/9RBebJ+udzg9NIJZKbxav2?= =?us-ascii?Q?qdGfJ/nHvJ8Vwhjy7PoGlHxTdTtFBXF8Kv1EArHXauW/CA7CB6TAzxedVo1Z?= =?us-ascii?Q?KPW4DN/bdWoUTcHIkfUC/VnecY9ufO5nYJ5025lGtqzFuFuVYsKRRZ173z8y?= =?us-ascii?Q?KJbrHSAXE5lidhl0sEnNYNH1siUyoFVeVilCmiLExi3vwBl7QiFdRFW2xbC3?= =?us-ascii?Q?NO6HuRmo7AFlCoYzFimqFO8UYSVQIapbvVgHQxiAG4IdecDwd1YGEAV9Kzu/?= =?us-ascii?Q?UGOow5io+ifEi+Vplw8Prmv6YFsGbubaJx0I7P0HFk/JndtfdshEyB1FvH1Z?= =?us-ascii?Q?xRx2nQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49e49125-6785-433d-5dfa-08d9f6088764 X-MS-Exchange-CrossTenant-AuthSource: CO3PR13MB5784.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2022 13:37:54.8508 (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: oQdvphdw4AOBb4taggLbwlAstFUeJTsQeOBpbOPRK+W2BjeJW95tZtBBi9RvcoVQum8RJXt7mOD+H1Z2l+1QS+rs6OO72DG9JYdV4P+YP5I= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR13MB2921 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. Fixes: b812daadad0d ("nfp: add Rx and Tx") Signed-off-by: Heinrich Kuhn Signed-off-by: Simon Horman --- 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 df3b7711dc..fa42548e7a 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); } @@ -888,11 +890,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); @@ -1609,6 +1615,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, @@ -1749,6 +1760,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 ac6118d639..67393f611e 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