* [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init [not found] <1514735641-8738-1-git-send-email-vipin.varghese@intel.com> @ 2018-01-11 19:47 ` Vipin Varghese 2018-01-26 15:44 ` Van Haaren, Harry 2018-01-26 16:59 ` Thomas Monjalon 0 siblings, 2 replies; 5+ messages in thread From: Vipin Varghese @ 2018-01-11 19:47 UTC (permalink / raw) To: harry.van.haaren, dev; +Cc: stable, Vipin Varghese When procinfo is run multiple times against primary application, it consumes huge page memory by rte_service_init. Which is not released at exit of application. Invoking rte_service_finalize to real memory and prevent memory leak. Signed-off-by: Vipin Varghese <vipin.varghese@intel.com> --- app/proc_info/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/proc_info/main.c b/app/proc_info/main.c index 94d53f5..1884e06 100644 --- a/app/proc_info/main.c +++ b/app/proc_info/main.c @@ -29,6 +29,7 @@ #include <rte_branch_prediction.h> #include <rte_string_fns.h> #include <rte_metrics.h> +#include <rte_service.h> /* Maximum long option length for option parsing. */ #define MAX_LONG_OPT_SZ 64 @@ -660,5 +661,7 @@ static void collectd_resolve_cnt_type(char *cnt_type, size_t cnt_type_len, if (enable_metrics) metrics_display(RTE_METRICS_GLOBAL); + rte_service_finalize(); + return 0; } -- 1.9.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init 2018-01-11 19:47 ` [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init Vipin Varghese @ 2018-01-26 15:44 ` Van Haaren, Harry 2018-01-26 16:59 ` Thomas Monjalon 1 sibling, 0 replies; 5+ messages in thread From: Van Haaren, Harry @ 2018-01-26 15:44 UTC (permalink / raw) To: Varghese, Vipin, dev; +Cc: stable > From: Varghese, Vipin > Sent: Thursday, January 11, 2018 7:48 PM > To: Van Haaren, Harry <harry.van.haaren@intel.com>; dev@dpdk.org > Cc: stable@dpdk.org; Varghese, Vipin <vipin.varghese@intel.com> > Subject: [PATCH v2] app/procinfo: Fix memory leak by rte_service_init > > When procinfo is run multiple times against primary application, it > consumes huge page memory by rte_service_init. Which is not released > at exit of application. > > Invoking rte_service_finalize to real memory and prevent memory leak. > > Signed-off-by: Vipin Varghese <vipin.varghese@intel.com> Thanks Vipin. Note that this fixes a hugepages memory leak that would otherwise occur when a secondary process initializes EAL and then quits. Note that this patch depends on the patch adding rte_service_finalize() http://dpdk.org/dev/patchwork/patch/34555/ Acked-by: Harry van Haaren <harry.van.haaren@intel.com> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init 2018-01-11 19:47 ` [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init Vipin Varghese 2018-01-26 15:44 ` Van Haaren, Harry @ 2018-01-26 16:59 ` Thomas Monjalon 2018-01-26 17:15 ` Van Haaren, Harry 1 sibling, 1 reply; 5+ messages in thread From: Thomas Monjalon @ 2018-01-26 16:59 UTC (permalink / raw) To: Vipin Varghese, harry.van.haaren; +Cc: stable, dev 11/01/2018 20:47, Vipin Varghese: > When procinfo is run multiple times against primary application, it > consumes huge page memory by rte_service_init. Which is not released > at exit of application. > > Invoking rte_service_finalize to real memory and prevent memory leak. I don't think it is correct to call rte_service_finalize in applications, while rte_service_init is called in EAL. Maybe we need a new function in EAL. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init 2018-01-26 16:59 ` Thomas Monjalon @ 2018-01-26 17:15 ` Van Haaren, Harry 2018-01-26 17:26 ` Thomas Monjalon 0 siblings, 1 reply; 5+ messages in thread From: Van Haaren, Harry @ 2018-01-26 17:15 UTC (permalink / raw) To: Thomas Monjalon, Varghese, Vipin; +Cc: stable, dev > From: Thomas Monjalon [mailto:thomas@monjalon.net] > Sent: Friday, January 26, 2018 5:00 PM > To: Varghese, Vipin <vipin.varghese@intel.com>; Van Haaren, Harry > <harry.van.haaren@intel.com> > Cc: stable@dpdk.org; dev@dpdk.org > Subject: Re: [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by > rte_service_init > > 11/01/2018 20:47, Vipin Varghese: > > When procinfo is run multiple times against primary application, it > > consumes huge page memory by rte_service_init. Which is not released > > at exit of application. > > > > Invoking rte_service_finalize to real memory and prevent memory leak. > > I don't think it is correct to call rte_service_finalize in applications, > while rte_service_init is called in EAL. > > Maybe we need a new function in EAL. Yes correct - we need a rte_eal_deinit(), cleanup() or finalize() or something. This ties in with splitting EAL to be more modular on startup, and DPDK in general behaving more like a library and less like a single-monolith. For the 18.02 timeframe, the simplest solution to solve the secondary process mem-leak issue than to merge into these applications, unfortunately. The only other option I see is to add an rte_eal_finalize() function, and hide this call behind it, however it is quite late to add such a function, and what do we do with cases like rte_panic(), rte_exit(), or system signals like SIGINT, SIGHUP etc? It seems too complicated to add "quickly" to me. If there is technically a better solution viable in the given timeframe, I'm open to suggestions? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init 2018-01-26 17:15 ` Van Haaren, Harry @ 2018-01-26 17:26 ` Thomas Monjalon 0 siblings, 0 replies; 5+ messages in thread From: Thomas Monjalon @ 2018-01-26 17:26 UTC (permalink / raw) To: Van Haaren, Harry Cc: Varghese, Vipin, stable, dev, bruce.richardson, konstantin.ananyev, olivier.matz 26/01/2018 18:15, Van Haaren, Harry: > From: Thomas Monjalon [mailto:thomas@monjalon.net] > > 11/01/2018 20:47, Vipin Varghese: > > > When procinfo is run multiple times against primary application, it > > > consumes huge page memory by rte_service_init. Which is not released > > > at exit of application. > > > > > > Invoking rte_service_finalize to real memory and prevent memory leak. > > > > I don't think it is correct to call rte_service_finalize in applications, > > while rte_service_init is called in EAL. > > > > Maybe we need a new function in EAL. > > Yes correct - we need a rte_eal_deinit(), cleanup() or finalize() or something. This ties in with splitting EAL to be more modular on startup, and DPDK in general behaving more like a library and less like a single-monolith. > > For the 18.02 timeframe, the simplest solution to solve the secondary process mem-leak issue than to merge into these applications, unfortunately. > > The only other option I see is to add an rte_eal_finalize() function, and hide this call behind it, however it is quite late to add such a function, and what do we do with cases like rte_panic(), rte_exit(), or system signals like SIGINT, SIGHUP etc? It seems too complicated to add "quickly" to me. > > If there is technically a better solution viable in the given timeframe, I'm open to suggestions? I think it is better to keep the leak in 18.02, and takes time to fix it properly in 18.05. If you really think it is a major bug, we can try to expose a new EAL function now and refine it in 18.05. More opinions? ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-01-26 17:27 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <1514735641-8738-1-git-send-email-vipin.varghese@intel.com> 2018-01-11 19:47 ` [dpdk-stable] [PATCH v2] app/procinfo: Fix memory leak by rte_service_init Vipin Varghese 2018-01-26 15:44 ` Van Haaren, Harry 2018-01-26 16:59 ` Thomas Monjalon 2018-01-26 17:15 ` Van Haaren, Harry 2018-01-26 17:26 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).