[dpdk-stable] [PATCH] eal/service: add routine to release memory.
Vipin Varghese
vipin.varghese at intel.com
Wed Jan 24 08:03:28 CET 2018
The routine rte_service_finalize cehcks if service is initialized,
if yes releases the internal meory for services and lcore states.
This routine is to be invoked at end of application termiantion.
Signed-off-by: Vipin Varghese <vipin.varghese at intel.com>
---
lib/librte_eal/common/include/rte_service.h | 12 ++++++++++++
lib/librte_eal/common/rte_service.c | 13 +++++++++++++
lib/librte_eal/rte_eal_version.map | 1 +
3 files changed, 26 insertions(+)
diff --git a/lib/librte_eal/common/include/rte_service.h b/lib/librte_eal/common/include/rte_service.h
index 02b1512..1b2b8e7 100644
--- a/lib/librte_eal/common/include/rte_service.h
+++ b/lib/librte_eal/common/include/rte_service.h
@@ -429,6 +429,18 @@ int32_t rte_service_attr_get(uint32_t id, uint32_t attr_id,
*/
int32_t rte_service_attr_reset_all(uint32_t id);
+/**
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * Free up the memory that has been initialized.
+ *
+ * This routine is to be invoked prior to process termination.
+ *
+ * @retval None
+ */
+void rte_service_finalize(void);
+
#ifdef __cplusplus
}
#endif
diff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c
index 5f97d85..5133c98 100644
--- a/lib/librte_eal/common/rte_service.c
+++ b/lib/librte_eal/common/rte_service.c
@@ -108,6 +108,19 @@ int32_t rte_service_init(void)
return 0;
}
+void rte_service_finalize(void)
+{
+ if (rte_service_library_initialized) {
+ if (rte_services)
+ rte_free(rte_services);
+ if (lcore_states)
+ rte_free(lcore_states);
+
+ rte_service_library_initialized = 0;
+ }
+}
+
+
/* returns 1 if service is registered and has not been unregistered
* Returns 0 if service never registered, or has been unregistered
*/
diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
index 7088b72..24d1ca7 100644
--- a/lib/librte_eal/rte_eal_version.map
+++ b/lib/librte_eal/rte_eal_version.map
@@ -245,5 +245,6 @@ EXPERIMENTAL {
rte_service_set_runstate_mapped_check;
rte_service_set_stats_enable;
rte_service_start_with_defaults;
+ rte_service_finalize;
} DPDK_18.02;
--
1.9.1
More information about the stable
mailing list