Message ID | 20200513131425.27817-4-Renata.Saiakhova@ekinops.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Delegated to: | Ferruh Yigit |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1EAF5A034F; Wed, 13 May 2020 15:15:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DE5681D5D7; Wed, 13 May 2020 15:15:12 +0200 (CEST) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-eopbgr90117.outbound.protection.outlook.com [40.107.9.117]) by dpdk.org (Postfix) with ESMTP id 955731D5C9 for <dev@dpdk.org>; Wed, 13 May 2020 15:15:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oE3TvWA6cOm/8gL7UMw/uIhdPkbcrbxSt9sUXlawc1Pxq+aLXH9NSQyzQ55SX9YnruB5M3CECRZhTytNTHzlvoC6Mn4nh7nkWkJI/bOh5xk0vNgOwQ/AWtWrvOCYqsnCHmzxqH1GUuBQRtGYTtewOV4RwQ6hYK22IBfdZohuygICFHOwUzG8VPPbcT1m8gcZ0B5j7jMqDEf5Xr1GzPKqJzzmIzVCz6ZdnhGtcBdhQvunKzWNlFn3rxaCc6ma+MbzB15zNXg+q1ykZ1mSylUNy1iud5TGQF6avafEgOozZC/qyIe3hAJJq1pXWcZnTxLuDNZfmN5Qm43G0W7G5a+JYQ== 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-SenderADCheck; bh=wbzebK/ETKNO7H79xdDasqoDMdCZ0juYuQ1yx5QaltY=; b=CiAf59ZFB5FXAH6yI1vL0dtj3IY/4Jc1e4GxFk9iIywqd/tkprFC9TxSIlRJqMKX+eO+XLFqRPUcgJa2H9g8ZifB/cjrbl5kaEWIDpYe/g4KPKwGerQ52LKzkxh+i92G0t2xWIM9/Xpza5HYHJ2FDMFclto3sIhoyoACZZcPS/WdP87Qjc/vkUidocHwTOW/NMOVcwyIfHIFQZ6bhwdjG0dTR5nSqXBPqTL//BzuoyD3tfbGKTH+2ETq++Qy4hizQXV7fUgdjYMxVTk+1ytgRdjwK081Ox64GHNYzhRhkYvIQ3HbjhudAMqTb0/VBDKFMuQk4ZVLbtjWpShNrzVuag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ekinops.com; dmarc=pass action=none header.from=ekinops.com; dkim=pass header.d=ekinops.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ekinops.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wbzebK/ETKNO7H79xdDasqoDMdCZ0juYuQ1yx5QaltY=; b=VbFseYmma2MTsjsb2+q3jiL+Qvcv6SAILvPjysDIq/eP2qAde4m0a9TGJyQK8UvEjP5m6RXvTrXiKBseBZxWNCERn1hLhJj1kVmxC9CTc0FO4VvhXxJP6pL5eW8bg4Xp/jxD+8fOqwfUovaW6g5sa+b1vLmWl+06s55fc5jnq7M= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=ekinops.com; Received: from MRXP264MB0325.FRAP264.PROD.OUTLOOK.COM (52.134.49.19) by MRXP264MB0038.FRAP264.PROD.OUTLOOK.COM (52.134.49.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26; Wed, 13 May 2020 13:15:10 +0000 Received: from MRXP264MB0325.FRAP264.PROD.OUTLOOK.COM ([fe80::41a7:e761:6112:5c08]) by MRXP264MB0325.FRAP264.PROD.OUTLOOK.COM ([fe80::41a7:e761:6112:5c08%7]) with mapi id 15.20.2979.033; Wed, 13 May 2020 13:15:10 +0000 From: Renata Saiakhova <Renata.Saiakhova@ekinops.com> To: dev@dpdk.org Cc: Renata Saiakhova <Renata.Saiakhova@ekinops.com> Date: Wed, 13 May 2020 15:14:24 +0200 Message-Id: <20200513131425.27817-4-Renata.Saiakhova@ekinops.com> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20200513131425.27817-1-Renata.Saiakhova@ekinops.com> References: <20200513131425.27817-1-Renata.Saiakhova@ekinops.com> Content-Type: text/plain X-ClientProxiedBy: AM0PR06CA0123.eurprd06.prod.outlook.com (2603:10a6:208:ab::28) To MRXP264MB0325.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:22::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from renataOAB.oneaccess.intra (91.183.184.98) by AM0PR06CA0123.eurprd06.prod.outlook.com (2603:10a6:208:ab::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.20 via Frontend Transport; Wed, 13 May 2020 13:15:10 +0000 X-Mailer: git-send-email 2.17.2 X-Originating-IP: [91.183.184.98] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c95f1028-8d42-4dbf-fe22-08d7f73faa0c X-MS-TrafficTypeDiagnostic: MRXP264MB0038: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: <MRXP264MB0038BBEFF3885F51C14F191392BF0@MRXP264MB0038.FRAP264.PROD.OUTLOOK.COM> X-MS-Oob-TLC-OOBClassifiers: OLM:843; X-Forefront-PRVS: 0402872DA1 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qScgUY3xnUVe11ov1w4xYF3u+egji9mxpGB6fszqLTQViXP0r3L1ILS/APvZcWv7vdjalEEC5ZyEJ25HCFj4g4ABNDPWGwpObeNRlsCYaUAKdzlcFyQu2MDAOWBI35FNym5MugvL42Gtv+LGpgiJ1swQS4Fs7wwzgqRi6wj+5sCkuUIjC7KY5tnRxsBqtK+a8nhuFJqB2qRHFgxz7EtdxJ+4Js6Lo6rCgJjoUvQmUdp1YXj1oLlxplG9+RudYssaZ1Z0C0z/Q3NtBNeWTQIBGviqDaxxtCLSvBKv729b5/mz57+yqzxhWZWQ7PUBUv+We9biKoNZ7WEnTysEIMu5vbSo/RSEtMkMhxQ2HlDsEog8AtCPciBs4gUz2UMOWSIEagZoG+JoG8nwyKCovvBwuU+BWRbm9Vk3wMPd8JYSwrEkKd5dHlGezGw8iXfn+7dMVr8DSHSrof6pmLCIhetHcWFJAie+lF91DN6LeY+Yr7jtYCl0cw0NCD4xrdCYr/CKAI2nSRI0jYb3pYMcCf0Lkw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MRXP264MB0325.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFTY:; SFS:(376002)(346002)(136003)(39850400004)(396003)(366004)(33430700001)(36756003)(8936002)(4326008)(6916009)(6512007)(2616005)(8676002)(6486002)(107886003)(956004)(1076003)(4744005)(26005)(33440700001)(86362001)(66476007)(5660300002)(316002)(478600001)(16526019)(52116002)(66556008)(6506007)(2906002)(66946007)(6666004)(186003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: /Q/8rviTqMWetvyO1jHJRT88JMneCZMPanC0EVuWJro0az1adQfDuAks6jeDJHVcUVuRM/RzXARIbJaGjSkcB+mugwYl4XvvJpBfIgmYVleldNvKMkQDXsP0kmUgu3RITqqXeOTUpjs9a1j59MsA1LntSqWBCxlVSYYg4BCQ6N0hFPGLt0kd1RiLfVq6IMEBCVAno1d4WSfIXanbAq1ntnnTFMFy3pJDdUNU3Q3hwAgolYKpo4s2hWgGcO9aHbrqDfD+gIw3W9/Zl+Fy62gTmDyG/VDwB55yc4kmmeS4XK1PpMTvlvcGxeHkXAzg0fG065V3G3jctLE1w5NxbxVE9H91BpXt4uXUVRilzFxberZrmfL21uKEM5BkeMamO+5Np7VAFBE+3j/AbbVxYLlKvAt2bTE2MZgRGQyfKO/koLpAL4UVhhn2ZWDlhSkr5aK5tdyZsyriECmwXaBc/kOyknNzznLnB1v7YSJ2S2T6Ykc42tjLb/Qs2Xdhrv3plnyd X-OriginatorOrg: ekinops.com X-MS-Exchange-CrossTenant-Network-Message-Id: c95f1028-8d42-4dbf-fe22-08d7f73faa0c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2020 13:15:10.5862 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f57b78a6-c654-4771-a72f-837275f46179 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ObPaPgy5Bd+nUGcWV44VyHwW4Sk3uW8tIpY9qvCaO+d0bkx1PClpmjmqb0CIpz//lCkMKkrws1Qq+XO5i15lX4Beqf5Z8IgooBogO66VVMU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MRXP264MB0038 Subject: [dpdk-dev] [PATCH v3 3/4] drivers/net: Fix in i40e HW rings memory overlap X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
Memory corruption due to HW rings allocation
|
|
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
Commit Message
Renata Saiakhova
May 13, 2020, 1:14 p.m. UTC
Delete memzones for HW rings in i40e while freeing queues
Signed-off-by: Renata Saiakhova <Renata.Saiakhova@ekinops.com>
---
drivers/net/i40e/i40e_rxtx.c | 2 ++
1 file changed, 2 insertions(+)
Comments
Hi, Renata Saiakhova I think this patch is very important, It seems all kind of NIC has memory leak problem that used for store Tx or rx descriptor. If that is true, memory point by rxq-> rx_ring/ txq-> tx_ring will never be freed even if dev_close? Is my understanding right or wrong? If that is true, it seems you should also add in functioni40e_fdir_teardown(), because Tx_ring allocated in i40e_fdir_setup_tx_resources() also need freed, and memzones need to be delete. Is that so? Thanks. > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Renata Saiakhova > Sent: Wednesday, May 13, 2020 9:14 PM > To: dev@dpdk.org > Cc: Renata Saiakhova <Renata.Saiakhova@ekinops.com> > Subject: [dpdk-dev] [PATCH v3 3/4] drivers/net: Fix in i40e HW rings memory > overlap > > Delete memzones for HW rings in i40e while freeing queues > > Signed-off-by: Renata Saiakhova <Renata.Saiakhova@ekinops.com> > --- > drivers/net/i40e/i40e_rxtx.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index > 5e7c86ed8..99cec9b99 100644 > --- a/drivers/net/i40e/i40e_rxtx.c > +++ b/drivers/net/i40e/i40e_rxtx.c > @@ -2900,6 +2900,7 @@ i40e_dev_free_queues(struct rte_eth_dev *dev) > continue; > i40e_dev_rx_queue_release(dev->data->rx_queues[i]); > dev->data->rx_queues[i] = NULL; > + rte_eth_dma_zone_free(dev, "rx_ring", i); > } > > for (i = 0; i < dev->data->nb_tx_queues; i++) { @@ -2907,6 +2908,7 @@ > i40e_dev_free_queues(struct rte_eth_dev *dev) > continue; > i40e_dev_tx_queue_release(dev->data->tx_queues[i]); > dev->data->tx_queues[i] = NULL; > + rte_eth_dma_zone_free(dev, "tx_ring", i); > } > } > > -- > 2.17.2
On 6/1/2020 8:58 AM, Zhao1, Wei wrote: > Hi, Renata Saiakhova > > I think this patch is very important, It seems all kind of NIC has memory leak problem that used for store > Tx or rx descriptor. If that is true, memory point by rxq-> rx_ring/ txq-> tx_ring will never be freed even if dev_close? > Is my understanding right or wrong? That is right as far as I understand, and yes we should free them in dev_close. I think DPDK relies on that the memory will be freed on the process exit and sometimes behaves lazy on the memory free as being this case. > > If that is true, it seems you should also add in functioni40e_fdir_teardown(), because > Tx_ring allocated in i40e_fdir_setup_tx_resources() also need freed, and memzones need to be delete. > Is that so? > > Thanks. > > > >> -----Original Message----- >> From: dev <dev-bounces@dpdk.org> On Behalf Of Renata Saiakhova >> Sent: Wednesday, May 13, 2020 9:14 PM >> To: dev@dpdk.org >> Cc: Renata Saiakhova <Renata.Saiakhova@ekinops.com> >> Subject: [dpdk-dev] [PATCH v3 3/4] drivers/net: Fix in i40e HW rings memory >> overlap >> >> Delete memzones for HW rings in i40e while freeing queues >> >> Signed-off-by: Renata Saiakhova <Renata.Saiakhova@ekinops.com> >> --- >> drivers/net/i40e/i40e_rxtx.c | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index >> 5e7c86ed8..99cec9b99 100644 >> --- a/drivers/net/i40e/i40e_rxtx.c >> +++ b/drivers/net/i40e/i40e_rxtx.c >> @@ -2900,6 +2900,7 @@ i40e_dev_free_queues(struct rte_eth_dev *dev) >> continue; >> i40e_dev_rx_queue_release(dev->data->rx_queues[i]); >> dev->data->rx_queues[i] = NULL; >> + rte_eth_dma_zone_free(dev, "rx_ring", i); >> } >> >> for (i = 0; i < dev->data->nb_tx_queues; i++) { @@ -2907,6 +2908,7 @@ >> i40e_dev_free_queues(struct rte_eth_dev *dev) >> continue; >> i40e_dev_tx_queue_release(dev->data->tx_queues[i]); >> dev->data->tx_queues[i] = NULL; >> + rte_eth_dma_zone_free(dev, "tx_ring", i); >> } >> } >> >> -- >> 2.17.2 >
> -----Original Message----- > From: Yigit, Ferruh <ferruh.yigit@intel.com> > Sent: Saturday, June 20, 2020 12:56 AM > To: Zhao1, Wei <wei.zhao1@intel.com>; Renata Saiakhova > <Renata.Saiakhova@ekinops.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v3 3/4] drivers/net: Fix in i40e HW rings > memory overlap > > On 6/1/2020 8:58 AM, Zhao1, Wei wrote: > > Hi, Renata Saiakhova > > > > I think this patch is very important, It seems all kind of NIC has > > memory leak problem that used for store Tx or rx descriptor. If that is true, > memory point by rxq-> rx_ring/ txq-> tx_ring will never be freed even if > dev_close? > > Is my understanding right or wrong? > > That is right as far as I understand, and yes we should free them in dev_close. > I think DPDK relies on that the memory will be freed on the process exit and > sometimes behaves lazy on the memory free as being this case. > Thanks! Hope for accept for this patch. > > > > If that is true, it seems you should also add in > > functioni40e_fdir_teardown(), because Tx_ring allocated in > i40e_fdir_setup_tx_resources() also need freed, and memzones need to be > delete. > > Is that so? > > > > Thanks. > > > > > > > >> -----Original Message----- > >> From: dev <dev-bounces@dpdk.org> On Behalf Of Renata Saiakhova > >> Sent: Wednesday, May 13, 2020 9:14 PM > >> To: dev@dpdk.org > >> Cc: Renata Saiakhova <Renata.Saiakhova@ekinops.com> > >> Subject: [dpdk-dev] [PATCH v3 3/4] drivers/net: Fix in i40e HW rings > >> memory overlap > >> > >> Delete memzones for HW rings in i40e while freeing queues > >> > >> Signed-off-by: Renata Saiakhova <Renata.Saiakhova@ekinops.com> > >> --- > >> drivers/net/i40e/i40e_rxtx.c | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/drivers/net/i40e/i40e_rxtx.c > >> b/drivers/net/i40e/i40e_rxtx.c index > >> 5e7c86ed8..99cec9b99 100644 > >> --- a/drivers/net/i40e/i40e_rxtx.c > >> +++ b/drivers/net/i40e/i40e_rxtx.c > >> @@ -2900,6 +2900,7 @@ i40e_dev_free_queues(struct rte_eth_dev *dev) > >> continue; > >> i40e_dev_rx_queue_release(dev->data->rx_queues[i]); > >> dev->data->rx_queues[i] = NULL; > >> + rte_eth_dma_zone_free(dev, "rx_ring", i); > >> } > >> > >> for (i = 0; i < dev->data->nb_tx_queues; i++) { @@ -2907,6 +2908,7 > >> @@ i40e_dev_free_queues(struct rte_eth_dev *dev) > >> continue; > >> i40e_dev_tx_queue_release(dev->data->tx_queues[i]); > >> dev->data->tx_queues[i] = NULL; > >> + rte_eth_dma_zone_free(dev, "tx_ring", i); > >> } > >> } > >> > >> -- > >> 2.17.2 > >
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 5e7c86ed8..99cec9b99 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -2900,6 +2900,7 @@ i40e_dev_free_queues(struct rte_eth_dev *dev) continue; i40e_dev_rx_queue_release(dev->data->rx_queues[i]); dev->data->rx_queues[i] = NULL; + rte_eth_dma_zone_free(dev, "rx_ring", i); } for (i = 0; i < dev->data->nb_tx_queues; i++) { @@ -2907,6 +2908,7 @@ i40e_dev_free_queues(struct rte_eth_dev *dev) continue; i40e_dev_tx_queue_release(dev->data->tx_queues[i]); dev->data->tx_queues[i] = NULL; + rte_eth_dma_zone_free(dev, "tx_ring", i); } }