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 1804643892; Thu, 11 Jan 2024 13:32:52 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 843D940266; Thu, 11 Jan 2024 13:32:51 +0100 (CET) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2077.outbound.protection.outlook.com [40.107.101.77]) by mails.dpdk.org (Postfix) with ESMTP id C02004025E; Thu, 11 Jan 2024 13:32:49 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CuhWd/rjgTodgHKfPfxZN99ZNhRiposxi/Sm83d0rVtKD1aPRyB57sf7CUwBHPp59LV6OIiQO/gAKHe3A9NxBJ3Fx3TURLMPAodlxoFTTfFadyYKkIJ7dTs3+2mI/i06lk8vFybhct1PbHEFGWA2H0Vvr4DY9hzO+FbGH1brh72gu9ncgJl/CEELAlhY/siD7s+VEpnyZ+9LfRBDenCQNGEl8P9Guf5ZOd/zmA9jwx+DU5jYH6WNeWgVbnV+fIJJGqCrpqpMfgLIcE8uWOVDHzA7bUpCVPwMjjletkZr7an2yMdbwgXdt4RigTays6BoDbZWq+4lfVxtE1iay+7AeA== 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=QUuDHlfTH6OSNw5ZuJTvvU7Ag0QsN/RBrzB0mF98jX8=; b=JtBeJ7uSy0ibOqVAScICxvsB5a4Aw581N6Oc2FCNHfBggOjN92NNSvTCd/LO759KLeWUodz5+t+gN3kWl3f92/v2fnw0vUYNY5utMC/LNEGBnJVhkk3wWoVYWfx2qdJ/4j+UE0toTHFfJi677Aa2vY2J+ayQn0RT6GnogHmtbI+LFjPq29nMt6kpuFJsumKitOm3vLFfsjmMLV29EaPF64Y+LkKP6T1E5UPyPgjUN0pgTE81jM6u5iv82I1cyOUSzUbX7J5jkSzDNquGVEgINkZDEMJAoA//xi8UvYC7+Q/dbeenEBsxor6U4Wf95b3MlTppo8JVF5EpALBLeqGSAw== 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=QUuDHlfTH6OSNw5ZuJTvvU7Ag0QsN/RBrzB0mF98jX8=; b=x32LWArHf4i6h1Jm6N8mL4s7wVQe7lcpvIlKlPvOCmwM/iHjClZQYJqG9Qi0vcsNLThGvEw2ZjXZFWulNYTBwmofs8nkvgO2HmAsm5zBL6stlW+ZKDcJ8U8ugps0HTmCbcWIWoX8UmmuJm4q/Zqg4zvA9YE1MrG6eNgjt+OyWR8= 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 CY8PR12MB8267.namprd12.prod.outlook.com (2603:10b6:930:7c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.23; Thu, 11 Jan 2024 12:32:47 +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; Thu, 11 Jan 2024 12:32:47 +0000 Message-ID: <7d82a8f0-25d4-4d58-b765-3bd22f2254e3@amd.com> Date: Thu, 11 Jan 2024 12:32:41 +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> 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: FR3P281CA0080.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::15) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|CY8PR12MB8267:EE_ X-MS-Office365-Filtering-Correlation-Id: 91cfc9f6-a2b7-45a0-5ced-08dc12a16aa1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HjkoTKiWEqx7Jcd9V7bv+hSv0twYEm59e8sOD5T5zyA/lXTmT/GQOl3k76owlIxNgjVcZ+8NyKDfkE5pnRTQC2OxyNrR1WdtH0Uun7SHDjVlxcd3DGaIBlyU3Iq4/LHuV57qa917phKjAs2liwlRC8cVOf9QCheXKJcYoGl0+psfyZSVbm8e3I1so+0+vwVLph9imyA5aTSrQmIZeYly+oHKgiqKWgLKD5M7baJwgVdWL1DIrWAKLICJGSkralAEUrGGqDwT60GTDDkaDTAoV57jXP4JN3exi9cdvXLQ75o2d6/XW2oVqkR0dPq1l216Sr+LMaOl/6bVzXnxJ4P2gBj5yYAYuoZ4hvwkQMcPZGz15LbwvaRfWQyfri1EIhuXsll3/MCN4xS0WFvRhmx+3dfhu5o51Q1vrMhGwfD1TgVzR3SiGLmyJ8IO4S7lPNG1bbb8EFRXyF59QLv3+PBYFtvvWJc1NZEq0Dukwy6iu/vxDPXkS0QHTQWyKpyb/YOvmgnCMKpgWQzOL1VH++dRBH5SwjMV+G8qks27UyVVViFbfKodck54IyaZS/oMI4JQQKU5Lq1IKQaY6uLZVzN/Dg8vYyYcuVK4wUeKjrTvZUbDmwrNbiUJMHNXhMvtZmcnGgnRHkL3OntoCoCKKu118g== 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)(39860400002)(396003)(376002)(366004)(136003)(346002)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(53546011)(26005)(6512007)(6666004)(478600001)(6486002)(2616005)(6506007)(83380400001)(2906002)(5660300002)(41300700001)(8936002)(54906003)(316002)(66476007)(110136005)(66556008)(4326008)(66946007)(44832011)(8676002)(31696002)(36756003)(38100700002)(86362001)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?LytsYUhkTVNnbG50YjByRGlWN1Z5Ym5kRzFoNk15ZjlBQ0tsTlh6VnJZbHlw?= =?utf-8?B?cHBTTXV0c29MRWk2SzJ3cUFabEtNcGhqdEkxK0kwTDdYWXAreWs5V28yYnVO?= =?utf-8?B?N1lPVTlFM2E0Zm5qRTMyWTZCQTFWUkhkdDd6dFArTzFuL1Ftc0dZV1owK3dX?= =?utf-8?B?SHBHK1pIV0Q2ZFlXMU5VSXg5UituWFZ2WDhQM01lTWhmOXZCWFM3a2lpOHZo?= =?utf-8?B?VEM2bXVZZWUvVWowU2RnMWt5SE5WczBJclY2bzBBdzExMzN4dEw5VzlBaXhG?= =?utf-8?B?QUZ5cm5DKy9mUXd6TTZWM0E2RWhvU0Y3M09KVDNxU2JXYWpXSG96Nk9raVZy?= =?utf-8?B?U3RsMHYyQzRsMmkybDFYM2dTYXB6cE1ZVjkyOS84VGIvUTFBYTdPemdieExz?= =?utf-8?B?NHBJUTQvOFBBTTNrbVZqMldqVXhOMTJRbk81SHF2SUordERuK1pYZkp3dHc4?= =?utf-8?B?V1hXWjIzSXVOeVdUeXRUWUp4N3NnWlowVTVqWjZ2S1BnNnJrdFhCNHp6Qk5X?= =?utf-8?B?dklEY2c1dlFTZ0R4Vzk0Qm1BZlY2bjJ0YXRvOXEvZWhYMCtISHJ2V3BLeGtO?= =?utf-8?B?aFUrQlNKZ1FPOXV6OUVTMmcraTNQNUpPMzFOVGNETFRLRnlnblEzVjJldGt6?= =?utf-8?B?V0dOV0EzT2srQVZ1NzBqSTBuYXBLME9WYUdTQkZnbG1ZeFJHYnFlenpNTTZM?= =?utf-8?B?ZGlJZWVaSWQ3TmxFL3pBemZ3WU80U04vT3IzYzBuVGQwdmRwZThDaVNrVVZM?= =?utf-8?B?OVk0cGNhY29VZHdOaGNMUEFZSDE2aFY4RlZKVDZqbFQwWGFaNDJCQTBuYytt?= =?utf-8?B?bUdBM0FnUzN2V2VtU3IwdXVMWjhaV0FjazRaOGFnMWZnZ2JpWnNFT0ZCUjVQ?= =?utf-8?B?dFNES3paQlIzS2wxTWNXWmRmVWcvNG8yUnVsRnBwaHd1M0VIQzlPYnVrYXJY?= =?utf-8?B?UEJ5M2JmYW9uRkREdE9sbXFPbGNMdUdpUXIyeGxKUExUbEpDVjhJZDI5dmM4?= =?utf-8?B?QzVwaDVMZVJJc2dXT29xSjVrTVJxYklna2hvTVplbU9OM0huNzZaOSs5UEpX?= =?utf-8?B?R0Z2bkI4T2J5VEcrZ3JLbUhZSVB0QVpLOFFlZVB0cmNzUEgxT3ZIYU00elpo?= =?utf-8?B?Y0tZMXYxMWREZ1dtbWFISWJyTS8ySDVYT0tRcWpGR1R4VXljT2NaQkFDaHBY?= =?utf-8?B?eU92NmlzQVgxdHFQUkZRZ2tVZExoZHdEM2VnUWhNRXFVdGpnRmczbDk5dFI0?= =?utf-8?B?VUdOY3FLZnhicEJKdWRXdFRab255ajFQTmNOTUNmU3VYMWJYVnR5YUwrYzVE?= =?utf-8?B?WCtUQTcxaVJ3SXZvMEIweTFSTVhDL3g0ZXVnSEFmUWRINC9xNktWTmZod3hP?= =?utf-8?B?ZXBsUFFpc3F6SVhJTzBXS3ZsRXozVXFyOHhGUWpvcFVxOG5qeUI4V2EzamNv?= =?utf-8?B?MEZjSHBNU0wvS1YyQmFmMk5YcFVacGJhbFd0WWdKN3RoNC85MzdUMUEraVFp?= =?utf-8?B?d21nOU1jN1c3amFQUHZBRmJjV3NQY05hUm9XMjdvbDlWZGdZMXBRTEV0ODVI?= =?utf-8?B?eEJSWHZXZ0tUeW1DTndWbkpJU1JZT2Q0WEpZbktndkdQWDkyZFBUTi9wbFZz?= =?utf-8?B?UDBjbU9tSEhOdHlQaHBucmpNVDlXSVMveEduc05GVXJWdjAydUN4YzZQQnRK?= =?utf-8?B?bTUyYllRNGdVMzVTNXVMd29xenBwVTFFVCtVbUoxZUhTTnpzek11QXJsZzNR?= =?utf-8?B?RkVJQXlESCtuLzZ1RlRPQWNmUVNCWEtLY2tUbHNZYzN4M0llWThMQmM0Q3hX?= =?utf-8?B?Ly9UT2JkZm5LTnkvazMvelFDZTNVSUdKKzVVZGIrcWxIazFiU2RnNFUzZjBz?= =?utf-8?B?RnpOenJkWVBZdjRtT0FoNUZSL1hpV00vRVRic1JyaW5PY21zNzVoSWJtZmNx?= =?utf-8?B?QU4xYkl1VDEwdUtPWFdZZVc1c0ZtdU5XVHpoMFdvTXF0VVRpa1p0c2o2cFA2?= =?utf-8?B?em1JSVM1eE5PYWE1WTlWakppS1ZUUEtsSEU1Z2Zoa3JKUC9qaHFRcGVyTkRV?= =?utf-8?B?NytUelJLQzAwQWI3aHk5MjdVQ29VZHVMRWpqamVOcWltUmdqbjJxbnFUMWNy?= =?utf-8?Q?NBdOgzAf07/h7TmZg1PdzidLp?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 91cfc9f6-a2b7-45a0-5ced-08dc12a16aa1 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2024 12:32:47.0371 (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: 0qlRlQIjvHKRvmUqWE5X4mQxGv+eeuVA+OCC8pvB5kdYKg7LsED9iiazCaWhm96R X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8267 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/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?