From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <olivier.matz@6wind.com>
Received: from mail-wr0-f182.google.com (mail-wr0-f182.google.com
 [209.85.128.182]) by dpdk.org (Postfix) with ESMTP id 709C35A3E
 for <dev@dpdk.org>; Fri,  7 Apr 2017 17:51:06 +0200 (CEST)
Received: by mail-wr0-f182.google.com with SMTP id c55so38506866wrc.3
 for <dev@dpdk.org>; Fri, 07 Apr 2017 08:51:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=6wind-com.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=iZwQTOG8OMzOeEN0OGeIPm3fq2W2nqygb19Oo51D4uM=;
 b=cfcHb1d9g5vpqjpsXdVE3As6nP5CcAX4w67GltHnXwsEf3wMFkUv1tWGSZvvY3p+E4
 ZacGGL2PgsVKIJ9KFc14r22N9H2Rbcf5KmxApHsjyp9tnLCgFDmdygZpAvfzh6FH1IcT
 u4nt9Ie9gzdTr1NGuX1elN6SuiyBZ14WN1udvZBbOYlfIF1eLqLQXk+Qr+Tu8L40pgXC
 mPGP0RZjUF4fWh0MAgI755Ngwuldk5kx1JHUTvCfcxWqAHGmTR0VklXxKw3xNN87uc0T
 rorASbrr4/Fj1n/I55prmt0cbT7xigZiJGoAB4k+LeAYtn+B1d4SyDPLWTWPTXRTWAqG
 X45A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=iZwQTOG8OMzOeEN0OGeIPm3fq2W2nqygb19Oo51D4uM=;
 b=OoT2gCmlVdUv3IVEVwUgNyFxQakyi2VhRbrbhR5rwPsC4YAGxJZWn1xUBThQr7O+h4
 1swyPI91l1vH1OMjnkV/kG2K0WbFBKmvNkf5GX2K4uSGOmiKxNo/kPk8paaEpfxqOf1u
 qiOkBHVzS+TYB+UA0+znwHeYe3hIjzj6Cn5sZtYuQ3OBYNIeRqlJbaprn+rvpyPO9Eim
 w94p8iRAWGA3hY7JcEkVjgzIh94okRNyXanaNSHNBAsymkBCLfN3nBhwP8M5nAJzK+7J
 NbXKawsiMJ3qNksG5s9TDtvNOP/H7PA+E/rJjMhyfBWNbtjlE9IY2+fSnrexVhwAp9oa
 C5/Q==
X-Gm-Message-State: AN3rC/73/av3G60rYmLFUqxE/IRCpmYALc3ztroDvLzRXj5hFS8KSclljLyu8zZUJKPL3QV1
X-Received: by 10.223.154.129 with SMTP id a1mr6558699wrc.5.1491580265906;
 Fri, 07 Apr 2017 08:51:05 -0700 (PDT)
Received: from platinum (2a01cb0c03c651000226b0fffeed02fc.ipv6.abo.wanadoo.fr.
 [2a01:cb0c:3c6:5100:226:b0ff:feed:2fc])
 by smtp.gmail.com with ESMTPSA id l186sm1469161wmd.17.2017.04.07.08.51.05
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Fri, 07 Apr 2017 08:51:05 -0700 (PDT)
Date: Fri, 7 Apr 2017 17:51:02 +0200
From: Olivier Matz <olivier.matz@6wind.com>
To: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Cc: dev@dpdk.org, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com,
 stable@dpdk.org
Message-ID: <20170407175102.4f2152c1@platinum>
In-Reply-To: <20170406064549.7966-1-santosh.shukla@caviumnetworks.com>
References: <1491382264-23489-1-git-send-email-santosh.shukla@caviumnetworks.com>
 <20170406064549.7966-1-santosh.shukla@caviumnetworks.com>
X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH v2 1/2] test/mempool_perf: Free mempool on
	exit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Apr 2017 15:51:06 -0000

Hi Santosh,

On Thu,  6 Apr 2017 12:15:48 +0530, Santosh Shukla <santosh.shukla@caviumnetworks.com> wrote:
> Mempool_perf test not freeing pool memory.
> 
> Cc: stable@dpdk.org
> Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
> ---
> 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.

If you want to do more clean-up, you can try to remove the global variables,
but it's maybe harder.

Thanks,
Olivier