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 40B50438A1; Fri, 12 Jan 2024 11:06:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0EC3B402AC; Fri, 12 Jan 2024 11:06:22 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2055.outbound.protection.outlook.com [40.107.237.55]) by mails.dpdk.org (Postfix) with ESMTP id 8AE714028C; Fri, 12 Jan 2024 11:06:20 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QFcR8yo6sIRZwdwYS+CrZqBdzzhM+9DvnQT51qJSQbr1TiECpCk+eS4Kav4v4phJ/zR9lYGPYvIPd2piiRRlWO/oanvrseOn5f3WUBfAS+klfRiBU5Yq/p4LuDlvOh4vQoSL2jLGuhz9i7+ARwJgdeVwC17n75aabN8HQdBgTEd2DWES/h1zvxoFF8hBYQKDzxHtA3dnEu6lk3FsJFcaElg9g/23g4UVusiWoheRKbHE/253mXe3Z8p5mZXRC5XFVK1O0l9M4nvWG1nkFUF+hUVVYE5meRV2bC9QBezgdefo5nx7o9bOEB5kGymgQMrVZMdsnJ/Al4PrN52EMexzgw== 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=L1i8BeRvWmbPAnddXgEixfpBW2tmsi33RMEw40S3JAU=; b=RdXusAPEn55b4QojDe5XBhSMbzTZXcYlsgIvPF/Of29MI3jqqo087hg47MIdliV2f0vP3Mo/rc1k00JWuvuI2qQ/OxFBDxXWBnffT5Ke1pxXsWO+ZSpVIoo1BD+8o836dZKbEtAdQ8oolv89KH73QeTAv+y+hB6DJzqCPmqkXH22SvVUiXSBidHravAcTrZ1EsTb87UWIfXE/VNpTKresrHG618ldscJsxkBGzc5gMVULpodpj5eknYIyn8q1aXqQnYWi48xcYo9xn0brMiodq8fhbSDADr11CguxYGSZ3+wsPde1cWAd86zzT3fbo12oPFk7P6yNbhjvSOpWuFP7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L1i8BeRvWmbPAnddXgEixfpBW2tmsi33RMEw40S3JAU=; b=28hbZe+p1P98TC8pQKD2PqCnz6An4nXABdVZtfCEfFV16XbY47gk4IBrVCR7ho1bgRRQtkpv6ncK0xKEQTHHUR4XJ44AYBLVG0E9JmhmdFEYjrtfuZDf9IEfwR4fSGkpJEbB2Ivvam8ZwBWOAP+BD280faA/rqzE0ary9gCAGv4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by CH0PR12MB5347.namprd12.prod.outlook.com (2603:10b6:610:d6::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.21; Fri, 12 Jan 2024 10:06:18 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::815a:45e6:cf5e:479f]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::815a:45e6:cf5e:479f%4]) with mapi id 15.20.7181.018; Fri, 12 Jan 2024 10:06:18 +0000 Message-ID: Date: Fri, 12 Jan 2024 10:06:13 +0000 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] net/nfp: fix free resource problem Content-Language: en-US To: Chaoyong He , "dev@dpdk.org" Cc: oss-drivers , Long Wu , "stable@dpdk.org" , Nole Zhang References: <20231214102431.2091608-1-chaoyong.he@corigine.com> <20231214102431.2091608-3-chaoyong.he@corigine.com> <0a5a69d7-2d2e-4a0e-9d29-18ec856b5be2@amd.com> <7905a240-7457-4986-8afe-959d57462d94@amd.com> <7d82a8f0-25d4-4d58-b765-3bd22f2254e3@amd.com> From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@amd.com; keydata= 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 8Zk= In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR4P281CA0401.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:cf::7) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|CH0PR12MB5347:EE_ X-MS-Office365-Filtering-Correlation-Id: 793647c0-3e0f-4c88-01b8-08dc13561e9c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NPOfot6iV5vlErMl+PqoQl+7JVj24CeSJm07LXisRMCE8J+iWY2Fyn1FdP9AypOci/4YOgnt9Gznj4JhYM6E8MeqFeu3j7R9ARfDP/uuLf2uxoQpqXMyT21RGlxWiaEXejetusZfPgwzzTNkApCRYGeS8qgt0tsqLv0gUgai7BzS05wC+MzR8HEqyKf5crPzlx+tHUL6w8GjqKWv1ikodiZbqp5NhdrTAKCx67vyptWoMPZuNDh1xFxgaVsdLPhFg6qxuD5W+0Eno1ocgt0VWnnOtyt3R6XA4GHYxB1LkOOXy8hLFcD/ag7esYS3eO8eMOgZGDWw1lxSO5kkIsWB7KSgbVi4PAzNTVyryIyd7JwFU5mrIukSi7LzB9MSgfw/nXdQEn/+w2sc6mX0j7cEeGlNwosANpoxfg9lJ+pXITXxA6KMF7OXgptNzl7C8VpPKNWX1Mz0leI+dYLHNCvvgfkPHbpzOZw4Y2cOmjzweZf2y2897VDGJWy5uBYUNhMjqWLF1KrPnAZ+4fy9nLE4wmXCTXVRBmk8KozH0wQaioXDCg8P8zOfkkThVyDWYBBlapFy6VDrsftAXcZa/JrFwz8Ufnf/G1BEVoAaDqMAF3DJX1Fpv7zvy7BQuPs6wjwFq/CXfY8dNlr4t+6bYgv42Q== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(346002)(376002)(366004)(136003)(39860400002)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(83380400001)(26005)(53546011)(2616005)(38100700002)(6512007)(4326008)(5660300002)(8936002)(44832011)(8676002)(41300700001)(2906002)(6666004)(478600001)(6486002)(6506007)(54906003)(66476007)(316002)(66556008)(66946007)(110136005)(86362001)(31696002)(36756003)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzNvcEF4SFlIVDJqNGtGNlg4V1p3bU50MDNSODhOQkc0d0VWT1hJWFozSWNY?= =?utf-8?B?bWdFVVlrdzlCeFQ5T1JnTkxuT2xyS0U5T2Z5dkJra3BGL0lMVXlPYkZCSk52?= =?utf-8?B?SFZuWk9oajBUVlhBQzNqRHA1WTJjbUZQdWZDM2RQLytuMCtwcE5wd3htWXRT?= =?utf-8?B?VXdZbGRUUlFNdWNiMVZnWTI2UUd0VVdXZ2QxdDN2bjZrM0VKN1EwNml4ekFt?= =?utf-8?B?QXh3cnNRSWpGaENiUVJBS2lxTHZjWi9aRVlEQUIvY2FxbXFETEl5U1RZaFdp?= =?utf-8?B?M1NJeXVWYTlQT3pQci9jVXJXRHFxNkVPeHpLVW10RXVRSGxYOXRlYW80TjhJ?= =?utf-8?B?eW9KQWtLSjRKY1NCWnAyRmFDcDFkK3JiQlFpd2xGTlN4a2o4ZnFxUmVqNzlL?= =?utf-8?B?MjhOMEx3QzRLODBoOFdFOFhCK29qcDRYM3FmV3grdVlCdFQ5ZG80ckR5MUJR?= =?utf-8?B?c2xYVkZ3UlRnWXBqeHdsL3FRY1BsSFROZ1dCNWMyMnMzUjNFSzVGYzVEd25P?= =?utf-8?B?QXJsWjArazRjMk0vS3UwaXFaZ2lhNk04d1BxTHhUdzlMSzRCakFETTZTWndK?= =?utf-8?B?VEE0RmF3QkRZQkFQOTI4cXdORC9DRURBMjlWUTRQcVRpWmp0OUlJMURQRFdk?= =?utf-8?B?ZVZaZHZMak5NUXlGR0hJYXloS09wL25Xamd2Z2oyb1VwbHFQVTlYTHJOeERI?= =?utf-8?B?eFA3ckF4Yy9ZdnZCN2s0WVZ4VTVNdkhEM3RlaUhrdFd1NnpBa09JWUpGdDVk?= =?utf-8?B?RTd0RWpsMU5yNVM2cm9FRmFycTh6SFIyVUExdDVnMm8wV3doNXZTOFgrcTEv?= =?utf-8?B?dUozZU5vZXdoamIzd1FJdGRCRjhsOUc3MXgzWWlYQktIZkJCaTM1TFpwWm1i?= =?utf-8?B?SEY3Z2ZrdjJNK1F3K0NUMnM1ZHAwNkZDTWFVWVh3L1JQVndENEZ5bVc4aU1z?= =?utf-8?B?cERpREtzWWt3RDhRL3RPdUFBQXZMMEdVdVEvT1JaWW44b0xuTlZtTVZPVk5U?= =?utf-8?B?RExwZFNQckJPY29SU0tQZjRWSGlOVFNESHkvd0hQREN4OTdURlhJUTUzT0lZ?= =?utf-8?B?bHFFRWxHeTNzRndCcXJjQk9lMFV6SnEyc0s3MFBHcjROVU5TMEZ6QWVJWkRZ?= =?utf-8?B?R25VMEhwWnFCcHd1RW1ydXVKNWJabTlmc3c4V3JnWlJnNXlHTklDOTMrSnE2?= =?utf-8?B?UHV2M05lRkUwQ0JVK0NhNjQybllBQmJCbjRBUFZ5RGNyOXM1amVoYWZjQzlC?= =?utf-8?B?cXVaQmEvWFF1S0lKajBzcldycVhqSlo4ZUJNQ2Z0N2hPYytMd0dRUGVQaVRv?= =?utf-8?B?MHJTY0pLU284VUY5eU04empSZ0VMQUhPblppUjJIeXN4ZC9ISTVvTmpMeWN4?= =?utf-8?B?QzQ4Z0JQTXBwWGxqdjZFSitYeklmTHBLR3JlL0FjUmkyNVBHVVA0QlR2K24v?= =?utf-8?B?WDJGbGFuZ1VONGdLaWYzVlRXNUNmeVo1VTlINVJzY09reHA4eWI2OXBEbFds?= =?utf-8?B?Uk1oYXBVVm9qVy84T0ZyTjVJRnFVb0ljWXcyR0FpN1JWQXU1bE54VC9KRnFh?= =?utf-8?B?NnIydUNiRHI1OHVwYjdwa3djaXJkTTZSUUM0Z0xHZEpsclhlQU9PU0ZOVXkw?= =?utf-8?B?dHhpVWVkcEVRNGZpNzFZeW5NNTFjdkR3QXN2SUlnRU9ESFltTDV1ZGRqRng5?= =?utf-8?B?UnJTSlQycDZZK3BUUDd1VjF6RGVONEN4OTZ4RzBRbHBEY3g4b2NPRlhnaWFH?= =?utf-8?B?Mm5VbW9TZW90OVhvUyt2bXdTZ1JSMFdkNkxPd2FDQnd0YU5sRHlMRUd2SHBq?= =?utf-8?B?TDRSVXhSQkNzM3JuWVE2RkNLVW4xL0FWUEFmN2tZUE9GOGZsVHlLdzNPS3g5?= =?utf-8?B?UHVlL3doWXc5QnlBZDhSQks4VlQ5dG9zVWUwUTUyZmg4QmpSZjE5YW5hOWZE?= =?utf-8?B?WmV6WkN1UUs3cTJLWlk0SkRWOWZsakRPU0QyN1hqKy91WHFNdFpHQ2U5ZFJM?= =?utf-8?B?cmY5emxlTTNUM2FCZnN5Y05zeG5CZ2VHZ3JGV0RoMndpYktUNWdoNTVNOUFN?= =?utf-8?B?dGNPMXUvaEdDUS9ab2RSbjVzWUxrbzdOa1k1OEFLMVdWN0tKbGVYRjROQmNm?= =?utf-8?Q?g+BIfxeIzE+9k9cmiCjAY5679?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 793647c0-3e0f-4c88-01b8-08dc13561e9c X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2024 10:06:18.4606 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: O+eqBQSPmmdF1yg+FydIqlBWF00VT6A5Zc7YsEhHDWfMf+3Z3iO5BNnPlBrW1B4r X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5347 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 On 1/12/2024 1:19 AM, Chaoyong He wrote: >> On 1/11/2024 2:02 AM, Chaoyong He wrote: >>>> On 1/9/2024 7:56 AM, Chaoyong He wrote: >>>>>> On 12/18/2023 1:50 AM, Chaoyong He wrote: >>>>>>>> On 12/14/2023 10:24 AM, Chaoyong He wrote: >>>>>>>>> From: Long Wu >>>>>>>>> >>>>>>>>> Set the representor array to NULL to avoid that close interface >>>>>>>>> does not free some resource. >>>>>>>>> >>>>>>>>> Fixes: a135bc1644d6 ("net/nfp: fix resource leak for flower >>>>>>>>> firmware") >>>>>>>>> Cc: chaoyong.he@corigine.com >>>>>>>>> Cc: stable@dpdk.org >>>>>>>>> >>>>>>>>> Signed-off-by: Long Wu >>>>>>>>> Reviewed-by: Chaoyong He >>>>>>>>> Reviewed-by: Peng Zhang >>>>>>>>> --- >>>>>>>>> drivers/net/nfp/flower/nfp_flower_representor.c | 15 >>>>>>>>> ++++++++++++++- >>>>>>>>> 1 file changed, 14 insertions(+), 1 deletion(-) >>>>>>>>> >>>>>>>>> diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c >>>>>>>>> b/drivers/net/nfp/flower/nfp_flower_representor.c >>>>>>>>> index 27ea3891bd..5f7c1fa737 100644 >>>>>>>>> --- a/drivers/net/nfp/flower/nfp_flower_representor.c >>>>>>>>> +++ b/drivers/net/nfp/flower/nfp_flower_representor.c >>>>>>>>> @@ -294,17 +294,30 @@ nfp_flower_repr_tx_burst(void >> *tx_queue, >>>>>>>>> static int nfp_flower_repr_uninit(struct rte_eth_dev *eth_dev) >>>>>>>>> { >>>>>>>>> + uint16_t index; >>>>>>>>> struct nfp_flower_representor *repr; >>>>>>>>> >>>>>>>>> repr = eth_dev->data->dev_private; >>>>>>>>> rte_ring_free(repr->ring); >>>>>>>>> >>>>>>>>> + if (repr->repr_type == NFP_REPR_TYPE_PHYS_PORT) { >>>>>>>>> + index = >> NFP_FLOWER_CMSG_PORT_PHYS_PORT_NUM(repr- >>>>>>>>> port_id); >>>>>>>>> + repr->app_fw_flower->phy_reprs[index] = NULL; >>>>>>>>> + } else { >>>>>>>>> + index = repr->vf_id; >>>>>>>>> + repr->app_fw_flower->vf_reprs[index] = NULL; >>>>>>>>> + } >>>>>>>>> + >>>>>>>>> return 0; >>>>>>>>> } >>>>>>>>> >>>>>>>>> static int >>>>>>>>> -nfp_flower_pf_repr_uninit(__rte_unused struct rte_eth_dev >>>>>>>>> *eth_dev) >>>>>>>>> +nfp_flower_pf_repr_uninit(struct rte_eth_dev *eth_dev) >>>>>>>>> { >>>>>>>>> + struct nfp_flower_representor *repr = >>>>>>>>> +eth_dev->data->dev_private; >>>>>>>>> + >>>>>>>>> + repr->app_fw_flower->pf_repr = NULL; >>>>>>>>> >>>>>>>> >>>>>>>> Here it is assigned to NULL but is it freed? If freed, why not >>>>>>>> set to NULL where it is freed? >>>>>>>> >>>>>>>> Same for above phy_reprs & vf_reprs. >>>>>>> >>>>>>> The whole invoke view: >>>>>>> rte_eth_dev_close() >>>>>>> --> nfp_flower_repr_dev_close() >>>>>>> --> nfp_flower_repr_free() >>>>>>> --> nfp_flower_pf_repr_uninit() >>>>>>> --> nfp_flower_repr_uninit() >>>>>>> // In these two functions, we just assigned to NULL but >>>>>>> not freed >>>> yet. >>>>>>> // It is still refer by the `eth_dev->data->dev_private`. >>>>>>> --> rte_eth_dev_release_port() >>>>>>> --> rte_free(eth_dev->data->dev_private); >>>>>>> // And here it is really freed (by the rte framework). >>>>>>> >>>>>> >>>>>> 'rte_eth_dev_release_port()' frees the device private data, but not >>>>>> all pointers, like 'repr->app_fw_flower->pf_repr', in the struct >>>>>> are freed, it is dev_close() or >>>>>> unint() functions responsibility. >>>>>> >>>>>> Can you please double check if >>>>>> 'eth_dev->data->dev_private->app_fw_flower->pf_repr' freed or not? >>>>> >>>>> (gdb) b nfp_flower_repr_dev_close >>>>> Breakpoint 1 at 0x7f839a4ad37f: >>>> file ../drivers/net/nfp/flower/nfp_flower_representor.c, line 356. >>>>> (gdb) c >>>>> Continuing. >>>>> >>>>> Thread 1 "dpdk-testpmd" hit Breakpoint 1, nfp_flower_repr_dev_close >>>> (dev=0x7f839aed2340 ) >>>>> at ../drivers/net/nfp/flower/nfp_flower_representor.c:356 >>>>> 356 if (rte_eal_process_type() != RTE_PROC_PRIMARY) >>>>> (gdb) n >>>>> 359 repr = dev->data->dev_private; >>>>> (gdb) >>>>> 360 app_fw_flower = repr->app_fw_flower; >>>>> (gdb) >>>>> 361 hw = app_fw_flower->pf_hw; >>>>> (gdb) >>>>> 362 pf_dev = hw->pf_dev; >>>>> (gdb) >>>>> 368 nfp_net_disable_queues(dev); >>>>> (gdb) p repr >>>>> $1 = (struct nfp_flower_representor *) 0x17c49c800 >>>>> (gdb) p dev->data->dev_private >>>>> $2 = (void *) 0x17c49c800 >>>>> (gdb) p repr->app_fw_flower->pf_repr >>>>> $3 = (struct nfp_flower_representor *) 0x17c49c800 >>>>> >>>>> As we can see, these three pointers point the same block of memory. >>>>> >>>> >>>> Ahh, I missed that 'repr->app_fw_flower->pf_repr' points to >>>> 'dev_private', so your code makes sense. >>>> >>>> But if it is 'dev_private', why free it in 'nfp_pf_uninit()' as it >>>> will be freed by 'rte_eth_dev_release_port()'? >>> >>> Sorry, I'm not understanding this. >>> The 'dev_private' is a 'struct nfp_flower_representor *', and it will be freed in >> 'rte_eth_dev_release_port()'. >>> What I freed in 'nfp_pf_uninit()' is a 'struct nfp_pf_dev *', so I'm not catch >> your point about this. >>> >>>> Won't removing 'rte_free(pf_dev);' from 'nfp_pf_uninit()' will have >>>> the same effect, instead of setting it NULL in advance? >>>> >>> >>> If I remove the 'rte_free(pf_dev);' from 'nfp_pf_uninit()', there will be a >> memory leak as no one will free it, and actually I'm not 'setting it NULL in >> advance'. >>> >>> 359 repr = dev->data->dev_private; >>> 360 app_fw_flower = repr->app_fw_flower; >>> 361 hw = app_fw_flower->pf_hw; >>> 362 pf_dev = hw->pf_dev; >>> >>> Maybe you just confuse the 'pf_repr' and 'pf_dev'? Just a guess. >>> >> >> Yes I did confuse those two, sorry about that. >> >> 'repr->app_fw_flower->pf_repr' is 'dev_private', and I assumed you are setting >> it NULL to escape from double free (and was checking where that double free >> happens), but I guess that is not the case. >> >> 'rte_eth_dev_destroy()' calls 'rte_eth_dev_release_port()' and frees >> 'dev_private' but 'repr->app_fw_flower->pf_repr' remains as dangling pointer >> and perhaps prevents 'nfp_flower_repr_dev_close()' move forward (because >> of "if (app_fw_flower->pf_repr != NULL)" check), and you are fixing it, is it the >> case? > > Correct, that's what we want to do by this patch and where the problem is, your description is very clear and brief. > Got it, I will proceed with the set. More details in the commit log helps reviewing the patches.