From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0081.outbound.protection.outlook.com [104.47.41.81]) by dpdk.org (Postfix) with ESMTP id B38CD2B8F; Sun, 9 Apr 2017 21:44:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=X5dfQEbW7sQv/KtxjIcivniPg2fnRTkOCd/0bCXrqCY=; b=nb8fwFexA1gTcL8Sc4FvFgKIRz3697uSaHZmbJ+3CrjjT3aeSUt3ftO6WUMDwcghl77lUEI7fOUUQSDQzkcFSMGmKPpWiHj3B1nBeFbFs29CMG+hOIlcGgZXU9OKu1ou9xeSTw+drQ5v0mDXOuR1IShrv+hcY2OttEZQgR8X9Rw= Authentication-Results: nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from [10.160.0.40] (111.93.218.67) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10; Sun, 9 Apr 2017 19:43:58 +0000 References: <1491382264-23489-1-git-send-email-santosh.shukla@caviumnetworks.com> <20170406064549.7966-1-santosh.shukla@caviumnetworks.com> <20170407175102.4f2152c1@platinum> To: olivier.matz@6wind.com, dev@dpdk.org Cc: stable@dpdk.org, Shreyansh Jain From: santosh Message-ID: Date: Mon, 10 Apr 2017 01:13:43 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BM1PR01CA0059.INDPRD01.PROD.OUTLOOK.COM (10.163.199.31) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-Office365-Filtering-Correlation-Id: b7eee391-e3b4-4baa-ba62-08d47f80c596 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:uJFtft0pK48sP8lnloBd1oYmMFeVfN4mj0SJsbRud3BdvvA3M42mA+AkCC8ou4PFQLoM7dcMlAfzm15mK/l9k/swBtcruJ5vxoxGBjw9x9yLnH3wApFy+J4OIZz/W8rP6uj6OHR6FPRZiTFAqgZavoq2Kxrzaulp6wmPUPjVF0l6FZ4P6g/+CItT3P0Ykpnl5O16j9AZDthu+A6WTfw61NuXvaofIdRxDjvmNakGrxPI7dXShKrdpXXYrGNUuSC28rxQV2hDPZSZvMTO7sbqHLJLUIpflSCL7b/JQmuSV5wwLu3LUlJ1P7TNsaU7jq7evguYpXiw4oPY0T9Zik6+ew==; 25:0vZCdDkwQmI1/U1tqUij4lSRcwa7/6W7Bo8vAbxrEGmoUeCPrKMqpBiCZ3UAx4XnMBciB04ANvpYsGJ5z+6hKMlTpuqBmv1OwsDvdhTXyxi4S7eRePe1CjSBfxTeU34U6BzF4NYZo+vtyRh8piKMySwJs14HEE7FdZjyCBGk0dah+pDsUE0bBkHyjXRysOq4WVCK7u4gnm5t0h1VfpKs5OT2RzN4tTQ+MIqym2TLg9eVW+80kl+9xPB9u05ONVqbPQq3d+9jS5ITRThIpqeBb4gNYdXyoN6iaGG1Y7NMhtNo+R/KzUQ5c1bjMLJKV6I26wJh3B3rhfbuBcFwBewmKfeEdhq97cUu/sWL/cQohGvdRdWhRhPPUHhxKFnSjRWDfCs15QeJGUbDcympml7TlqiWRLqFTWEdF4I6O4vP7GwMXzp17Jio7xAVYWCZu3SsABk6f4hGjommsJioihrbQw== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:LHBoQ/9oPhMBe+AqpUJwzJC4MgsLkjAkSTJqllmxkvLkOuV3aoikLOpl0Acvmaw7jk6Q8wFTu8dLHKy72+ipJItL1Rzc1Y3V6RK3ye7Uk3Xu1JcVuSmCYt0CUHEVQ0+xxXwSI1pxWOLDgcDVvm/5k6uM5hWoK/2zWFI4xVhvaTfQqBvRFTQf/ZOYQEMQzzcStYDXiBxXAjJCTPwDldApVP4MHjF4AZ2pPuVV8MaozCEtbsoDbPKTRz5VrailYuKeIduj+S3YIVxY7uiCdtO+fg==; 20:zf9Y4FsC1G5DAZhY9J+AKlTOEx/9le6l5pID1yEq980WAEbHJLc65jb+41NVaHA1qKMNYp2djRJwJfWUesSP2O8EU4I1EMdqVgkX1cIvTMNj36LGU7I0CBbgOa5EsP2t168LD9Ue3ILF5fqagGUdw/HykFe5YzUydv97VYgrZEG1MVKIpUj4wuWlnMHmnFE6s9EKmQglDVGNQncRfti+V7pn+BaxqVV7iLAc1r8d89yxK6bl+dFfAatWV+SWg3GVaaM6UBioAUvcrasofjh2pLOgIJp3M4BUIeDWuIABBhG7Ot9pn4HU5FhufIlSPFU2ozssRhp+EgO/ejRtIj5HP3Tc5UjfhgIeeJOQxXtzejpIUY/SPCIP3KP7PCdZYn4onmgvIHSxttQFTezxwM+aNCtIf4mP3D2jLvFWd49vo1rnPUDZiTd0UwX4izwtRz2peBTuU08rRpI6uixJQL57j841NdUGMwr4oHJ0dAzLrgM0+gI9BKO0pyEZ7ZycQNSX3cgrzQSnUTNnak5YDX0R6aDUWcfLr3XxF8QlifjAqC0s/N90ObaqMFuTwusE9vNd8mqAOLGHDmrjqKeIQiHGNBZybUAVjPTWxdhsT3VtXXw= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(6072148); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 4:jdDPxTlyu52mSb+/xQO692KkiBDcu7BU2BzydxszLbNCR8sPyFKdbrNyetBRWUr5X9iwFgSNofcfSWHtKgY9jPl1L6D9GbH/OgFtvItXBdIEK9T8A3jgNDzvRKGFwMV1U8JFaibf5Ld939oX5b2XDdOsSI2mwm4u3CarSP6W0tf3K3FM0TPZJeyX5HsV39qaPHSQlVvqybkTe1nqszpmkkrKy4fXAtRoG7n5L9T2bfOa/Sje12nbCXKKhK60KUNR53w95WFgdNtgWgDLv7ujPca6Urv7gS6nWGAc2od2OTgyf1U24mvkIMKkuM5O9Lss7NEb7N/fFbUiATbCFBnZdwyw9yIHKYUH9N0IOTAVBmxDHddAFoDhDowDiIw5huHO5L6b7UvSkxLMwkUFt0iXEjrkbseUGgWiDrgKwsu3B3ltwN/5OtmpRebN4dY8cfP2YwpkMPajrboTQO/KRne7Lag98E4/r0s0qQrG3q3zgetqQalB6A0LxtDJmPS5acaIbIr9p4MKMoY+OIcb+fg6jMFpLV9mXEKEcwTgiItFR+Lk4szYT1ivzXeIDbfUVyqvTpbARbk+qwWZKDh5CdRkmFE70xo2cftXH0BcBblyVnIGARnBK9116YTl7/YrlwzjPDiIR1tifg4W6eTkoeHsfiigkOnwZVorZnkv4hg/9PzMnzafmVKOyts0s+Q8xJ8D8+avu0Uz57IXudc/wWeMgF7nBqtgkIsu2l0YltU7E6AJa5NPh6JL5qkaaed3Hqvb X-Forefront-PRVS: 02723F29C4 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6049001)(6009001)(39850400002)(39400400002)(39410400002)(39450400003)(39840400002)(377454003)(24454002)(8676002)(81166006)(54356999)(50986999)(23746002)(76176999)(65956001)(66066001)(65806001)(47776003)(31696002)(42186005)(31686004)(64126003)(7736002)(305945005)(93886004)(5660300001)(65826007)(50466002)(83506001)(36756003)(4001350100001)(25786009)(86152003)(77096006)(2950100002)(42882006)(6666003)(6486002)(90366009)(33646002)(8656002)(230700001)(5009440100003)(6246003)(3846002)(6116002)(229853002)(2906002)(110136004)(189998001)(38730400002)(53936002)(4326008)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:[10.160.0.40]; FPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; BLUPR0701MB1714; 23:Af799XX4HvPzG4ECTjuF4I/tmqcAUErW1fI?= =?Windows-1252?Q?krYZJPItWRrsYEKBPv1qG0+Fb75bCP1upz2QBzEbaPCo3P+fTdrAVy88?= =?Windows-1252?Q?xNGcmjAFrK2m/a/iEURBoww2OhNt/qwrsq0DG6xNvhEx3uIfSbxI5ubG?= =?Windows-1252?Q?zXE6TBm7YOPhOIcLupBMph3HCTikkHBGeAEH42ZnqENdXz68gVqRvYnW?= =?Windows-1252?Q?UDZoyuFSq+FNTwi5hPMnAH2/4oxyvcxMXn1cwwSDvOSsgGn+GfurWxEs?= =?Windows-1252?Q?SwpJzhohEbo24adhIlSYeYm6GqqlOxYQXV2lQYgsjqREZr+arjCC18dK?= =?Windows-1252?Q?AbPU/hMD7oXPxq13G2bLm2BgtHyJxQp99uUpIzVTytyDu4aEghtNm8mP?= =?Windows-1252?Q?pc3Z1Syyod8uXJH9yN6MnEDNwCU2QxjcnIKoLhO0kwkEiqL1DY8lv36k?= =?Windows-1252?Q?+pDlGmE559pm1HYSdTaaoOcTa4l98s21OnqJFcMBlHoVpe2fHEaNyIoc?= =?Windows-1252?Q?6qu2VhflOVzbeggDfRPRjP6z2aGbkYJNJaYpehtVnU9qaaIJc9Z5immL?= =?Windows-1252?Q?b6nwyuaUHsvacQrgrXb7qBmdeQ6fIdSdSofxikP3EmP67pD4c6NtzooS?= =?Windows-1252?Q?biEUC62i5c3v0zHxKjSoLWi5tsEmzP6Jmvbk7iz/keQESovqw3soUMHt?= =?Windows-1252?Q?FHphK0LJa0s7Sz0/2GvQi+IbP8zggDx8jmuqgh477Jvk/VB6aHVDeCZJ?= =?Windows-1252?Q?cL9oig7OhKzDtANpASyPEYn3gRjLXAO//fZStqxYLjxxHMiL8YOqcREi?= =?Windows-1252?Q?bPmMhRf4zQm4oImV5bPULwSo5m5AcPCMk6Qkp0aKvdwknUtzRagBmhhS?= =?Windows-1252?Q?dtCGPJgipYUvBC4kbxv52T8/srUxjxAXFW7SFyX6t4h1bQkIAf3hJWLt?= =?Windows-1252?Q?hIYKg6HfpiSr4vTnKku0FMwuhIHT/X9V1ofFZSB5rDV69d29gTIqsBI9?= =?Windows-1252?Q?6tZrymVfl/pWndFcn2CAHkzqR4jSYpK1HaztTgNv9dPNIU8QEVqImezr?= =?Windows-1252?Q?+pcXW1tmmuwXBAGB/qvFmgPk0iUP1YkUJEv1VLNhFLh1SYJTfnGv/mI3?= =?Windows-1252?Q?orjr27impTZHe7Y0uZvLQT+KysOtZ+QWgaaGhRptbo1D2ynyoObPm/uN?= =?Windows-1252?Q?eSrm5fRq4SQV8U52T+NgHgq7MM39A7nRxdoD0F4SxXcU8kUP2mpKEEWJ?= =?Windows-1252?Q?AxfFBW2AL+YYRsUpcpz6F2y92I7c2TQ46anj88VQmfpp2uHWgCXiQZ/Z?= =?Windows-1252?Q?XT9PDTQXAn/KkQxIphptIeKQISdu6KD/vzhr+XEpYLKCxQHAjRP6AXpK?= =?Windows-1252?Q?5+K4d7Oqw27PTPF5Qssqijkh4b+FiksNvQlpKxnMLqGRld22KbRSdaMh?= =?Windows-1252?Q?mI/lYHzKV5GRi9UFPzMOpA/otYNzBboz7AybDTPA+qgNpVg8wxKVoRud?= =?Windows-1252?Q?aT51182g=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:PvCpl401DnefyfiEOnRXTEzQN+7JKSoumRUs9vC0wNkmvJtsxjDn10sNVXeMHA0H1k9fq/xumDx6JH6jflApWr/0DpqrZfj10VC2Xcq33BYUA8idka90tOBw+uwDumLP1z8rlUUKhRiHLhlD+lnBxMISax5zRubTZq4ntWIKoOSBD5FS008+lNSQxQhENMKCIbJVIzCAo1MyGJ91ACAWcOm2PS6/7+CgqtpUI6oB8CGbTcKKFlcT61f0kbqsR6GyMD6HjX7CX/jofxi4j5Pgp/crS00YdxijPrG6t8mCqPdhdLPTzmq+T9kyRBbGD0IXz5+JZESNvEPfsdyafO7T66irqt2H3j4q0/sANnmT3AQCDkzeRvcMZ76EsxQdVYVeNKpWZSVaq6wmvB6thkC7ZdpmKxOSB8+55qicAxuRjlPRCWCnZIy1mmQb18QIDDTjvo9pRdOi+BnmmJb9tvX2GQ==; 5:R09xepwrMtSnzvHgEjILqRrv0MBpiRDFWTr7EuOVeQGJwDeb/m/hsiojhSX8CCuLxl8MYX/F8RgxxLuPq50k5bl2/dC/B7llGqA72upqPo6QVxeqqxlhQd+1Qf+n5ol5id9bfZzjBsVwDsO9dtWaPg==; 24:ESXO1HxUwStjcSdqbxQU05M3wZGgu58zkfYSQz74wwCV+DIEgpxuitN7Q/K7HvN57NUbBrRQKee/AZBJJRMZaIMu1Q6Pw0JtPitEyg5723Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:oUCeIJKCh17rYkAMGSrGloiA/LkbpoKs/EbsTdoqu3p0YW5y4fURL9SZ8hkC8S4zz0xxWrs37yLmGiub6U6UxojsGP3AgtVEAGhOtWIrrgemmIDsa7yjBD3cc6cjRG0oBoD20E9ur2fJsR8bDamfqDwEp4oxEkeUwx3FnjOVMK6XhLJ0rQMvC4y3UzgAjWwEUW9HXSekBlFNkW7z8p4uG6TFmKnTy2En8nwmBC0LT3VoedosfxLCXMAsbk9TbVK6qo6Q+++0sz25pICCr3dH/xopFNZCWP7B1LqrlsOxODHZvqqL+DsbbKdKRQkHMWIiUtaKuRouYMfkIpxMfKRt4A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2017 19:43:58.9601 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: Re: [dpdk-stable] [PATCH v2 1/2] test/mempool_perf: Free mempool on exit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Apr 2017 19:44:04 -0000 Hi Olivier, On Monday 10 April 2017 12:47 AM, Shukla, Santosh wrote: > > > -------------------------------------------------------------------------------- > *From:* Olivier Matz > *Sent:* Friday, April 7, 2017 9:21 PM > *To:* Shukla, Santosh > *Cc:* dev@dpdk.org; hemant.agrawal@nxp.com; shreyansh.jain@nxp.com; stable@dpdk.org > *Subject:* Re: [PATCH v2 1/2] test/mempool_perf: Free mempool on exit > Hi Santosh, > > On Thu, 6 Apr 2017 12:15:48 +0530, Santosh Shukla > wrote: > > Mempool_perf test not freeing pool memory. > > > > Cc: stable@dpdk.org > > Signed-off-by: Santosh Shukla > > Acked-by: Shreyansh Jain > > --- > > v1 --> v2: > > * Fixed patch context > > > > test/test/test_mempool_perf.c | 31 +++++++++++++++++++------------ > > 1 file changed, 19 insertions(+), 12 deletions(-) > > > > diff --git a/test/test/test_mempool_perf.c b/test/test/test_mempool_perf.c > > index ebf1721ac..3c45971ab 100644 > > --- a/test/test/test_mempool_perf.c > > +++ b/test/test/test_mempool_perf.c > > @@ -312,6 +312,8 @@ do_one_mempool_test(unsigned cores) > > static int > > test_mempool_perf(void) > > { > > + int ret = -1; > > + > > rte_atomic32_init(&synchro); > > > > /* create a mempool (without cache) */ > > @@ -322,7 +324,7 @@ test_mempool_perf(void) > > my_obj_init, NULL, > > SOCKET_ID_ANY, 0); > > if (mp_nocache == NULL) > > - return -1; > > + goto err; > > > > /* create a mempool (with cache) */ > > if (mp_cache == NULL) > > [...] > > > > > - return 0; > > + ret = 0; > > + > > +err: > > + rte_mempool_free(mp_cache); > > + rte_mempool_free(mp_nocache); > > + return ret; > > > Since mp_cache and mp_nocache are global variables, this won't > work properly due to the way mempool are created: > > /* create a mempool (without cache) */ > if (mp_nocache == NULL) > mp_nocache = rte_mempool_create("perf_test_nocache", MEMPOOL_SIZE, > MEMPOOL_ELT_SIZE, 0, 0, > NULL, NULL, > my_obj_init, NULL, > SOCKET_ID_ANY, 0); > > The if() should be removed, else we'll have a use after free the next > time. I understand your point. But I think problem is rte_mempool_free() not referencing mp = null after freeing resources. Result of that is mp_nocache still has valid address, Although internal resources (mz/_ops_handle) were actually freed by rte_mempool_free(), right? So rather removing above if(), why not - Application explicit set mp_nocache = NULL after mempool_free(). ie.. err: rte_mempool_free(xxx); xxx = NULL; Or - Let rte_mempool_free() { - do mp = null; } And yes remove that if condition anyway. As its a dead-code for either of above 2 options. Does that make sense to you? If so then which one you prefer? > If you want to do more clean-up, you can try to remove the global variables, > but it's maybe harder. Removing global var won't be harder imo, May be you know more but here is my point of view, after going through code: - All test_func like do_one_mempool_test -> launch_cores --> per_lcore_mempool_test -> using 'mp' where 'mp' is global. how about, - As you said Yes - remove global var ie.. mp_cache/nocache, default_pool, mp - Add 'rte_mempool *mp' as argument in do_one_mempool_test() func and other func too. Thus get rid of globals from app. Does that make sense to you? Thanks,. Santosh > Thanks, > Olivier