The test application didn't call rte_eal_cleanup() on exit, which caused leftover hugepages and memory leaks when running secondary processes. Fix this by calling rte_eal_cleanup() on exit. Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> --- test/test/test.c | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/test/test/test.c b/test/test/test.c index 44dfe20ef..ffa9c3669 100644 --- a/test/test/test.c +++ b/test/test/test.c @@ -84,22 +84,29 @@ main(int argc, char **argv) int ret; ret = rte_eal_init(argc, argv); - if (ret < 0) - return -1; + if (ret < 0) { + ret = -1; + goto out; + } #ifdef RTE_LIBRTE_TIMER rte_timer_subsystem_init(); #endif - if (commands_init() < 0) - return -1; + if (commands_init() < 0) { + ret = -1; + goto out; + } argv += ret; prgname = argv[0]; - if ((recursive_call = getenv(RECURSIVE_ENV_VAR)) != NULL) - return do_recursive_call(); + recursive_call = getenv(RECURSIVE_ENV_VAR); + if (recursive_call != NULL) { + ret = do_recursive_call(); + goto out; + } #ifdef RTE_LIBEAL_USE_HPET if (rte_eal_hpet_init(1) < 0) @@ -111,7 +118,8 @@ main(int argc, char **argv) #ifdef RTE_LIBRTE_CMDLINE cl = cmdline_stdin_new(main_ctx, "RTE>>"); if (cl == NULL) { - return -1; + ret = -1; + goto out; } char *dpdk_test = getenv("DPDK_TEST"); @@ -120,18 +128,23 @@ main(int argc, char **argv) snprintf(buf, sizeof(buf), "%s\n", dpdk_test); if (cmdline_in(cl, buf, strlen(buf)) < 0) { printf("error on cmdline input\n"); - return -1; + ret = -1; + goto out; } cmdline_stdin_exit(cl); - return last_test_result; + ret = last_test_result; + goto out; } /* if no DPDK_TEST env variable, go interactive */ cmdline_interact(cl); cmdline_stdin_exit(cl); #endif + ret = 0; - return 0; +out: + rte_eal_cleanup(); + return ret; } -- 2.17.0
Hi,
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Anatoly Burakov
> Sent: Thursday, May 31, 2018 5:14 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH] test/test: properly clean up on exit
>
> The test application didn't call rte_eal_cleanup() on exit, which caused
> leftover hugepages and memory leaks when running secondary processes. Fix
> this by calling rte_eal_cleanup() on exit.
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> test/test/test.c | 33 +++++++++++++++++++++++----------
> 1 file changed, 23 insertions(+), 10 deletions(-)
Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
Tested-by: Reshma Pattan <reshma.pattan@intel.com>
Thanks,
Reshma
On 02-Aug-18 11:14 AM, Pattan, Reshma wrote:
> Hi,
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Anatoly Burakov
>> Sent: Thursday, May 31, 2018 5:14 PM
>> To: dev@dpdk.org
>> Subject: [dpdk-dev] [PATCH] test/test: properly clean up on exit
>>
>> The test application didn't call rte_eal_cleanup() on exit, which caused
>> leftover hugepages and memory leaks when running secondary processes. Fix
>> this by calling rte_eal_cleanup() on exit.
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>> test/test/test.c | 33 +++++++++++++++++++++++----------
>> 1 file changed, 23 insertions(+), 10 deletions(-)
>
> Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
> Tested-by: Reshma Pattan <reshma.pattan@intel.com>
>
> Thanks,
> Reshma
>
Ping :)
--
Thanks,
Anatoly
> -----Original Message-----
> From: Burakov, Anatoly
> Sent: Friday, October 5, 2018 1:30 PM
> To: Pattan, Reshma <reshma.pattan@intel.com>; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] test/test: properly clean up on exit
>
> On 02-Aug-18 11:14 AM, Pattan, Reshma wrote:
> > Hi,
> >
> >> -----Original Message-----
> >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Anatoly Burakov
> >> Sent: Thursday, May 31, 2018 5:14 PM
> >> To: dev@dpdk.org
> >> Subject: [dpdk-dev] [PATCH] test/test: properly clean up on exit
> >>
> >> The test application didn't call rte_eal_cleanup() on exit, which
> >> caused leftover hugepages and memory leaks when running secondary
> >> processes. Fix this by calling rte_eal_cleanup() on exit.
> >>
> >> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> >> ---
> >> test/test/test.c | 33 +++++++++++++++++++++++----------
> >> 1 file changed, 23 insertions(+), 10 deletions(-)
> >
> > Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
> > Tested-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
> > The test application didn't call rte_eal_cleanup() on exit, which caused
> > leftover hugepages and memory leaks when running secondary processes. Fix
> > this by calling rte_eal_cleanup() on exit.
> >
> > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> > ---
> > test/test/test.c | 33 +++++++++++++++++++++++----------
> > 1 file changed, 23 insertions(+), 10 deletions(-)
>
> Reviewed-by: Reshma Pattan <reshma.pattan@intel.com>
> Tested-by: Reshma Pattan <reshma.pattan@intel.com>
Applied, thanks