All of lore.kernel.org
 help / color / mirror / Atom feed
From: okaya@kernel.org
Cc: dev@dpdk.org, Stephen Hemminger <stephen@networkplumber.org>,
	Sinan Kaya <okaya@kernel.org>
Subject: [PATCH v5 01/10] eal: cleanup plugins data
Date: Thu, 17 Aug 2023 00:28:12 -0400	[thread overview]
Message-ID: <20230817042820.137957-2-okaya@kernel.org> (raw)
In-Reply-To: <20230817042820.137957-1-okaya@kernel.org>

From: Stephen Hemminger <stephen@networkplumber.org>

When rte_eal_cleanup is called walk through the list of shared
objects loaded, and close them and free the data structure.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
 lib/eal/common/eal_common_options.c | 14 ++++++++++++++
 lib/eal/common/eal_options.h        |  1 +
 lib/eal/linux/eal.c                 |  2 ++
 3 files changed, 17 insertions(+)

diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 062f1d8d9c..a509adc78b 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -244,6 +244,20 @@ eal_save_args(int argc, char **argv)
 }
 #endif
 
+void
+eal_plugins_cleanup(void)
+{
+#ifndef RTE_EXEC_ENV_WINDOWS
+	struct shared_driver *solib, *tmp;
+
+	RTE_TAILQ_FOREACH_SAFE(solib, &solib_list, next, tmp) {
+		if (solib->lib_handle)
+			dlclose(solib->lib_handle);
+		free(solib);
+	}
+#endif
+}
+
 static int
 eal_option_device_add(enum rte_devtype type, const char *optarg)
 {
diff --git a/lib/eal/common/eal_options.h b/lib/eal/common/eal_options.h
index 3cc9cb6412..ddbaafc4f1 100644
--- a/lib/eal/common/eal_options.h
+++ b/lib/eal/common/eal_options.h
@@ -105,6 +105,7 @@ int eal_check_common_options(struct internal_config *internal_cfg);
 void eal_common_usage(void);
 enum rte_proc_type_t eal_proc_type_detect(void);
 int eal_plugins_init(void);
+void eal_plugins_cleanup(void);
 int eal_save_args(int argc, char **argv);
 int handle_eal_info_request(const char *cmd, const char *params __rte_unused,
 		struct rte_tel_data *d);
diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
index c6efd92014..dee649bab3 100644
--- a/lib/eal/linux/eal.c
+++ b/lib/eal/linux/eal.c
@@ -1398,6 +1398,8 @@ rte_eal_cleanup(void)
 	eal_trace_fini();
 	eal_mp_dev_hotplug_cleanup();
 	rte_eal_alarm_cleanup();
+	eal_plugins_cleanup();
+
 	/* after this point, any DPDK pointers will become dangling */
 	rte_eal_memory_detach();
 	rte_eal_malloc_heap_cleanup();
-- 
2.25.1


  reply	other threads:[~2023-08-17  4:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-17  4:28 [PATCH v5 00/10] support reinit flow okaya
2023-08-17  4:28 ` okaya [this message]
2023-08-17  4:28 ` [PATCH v5 02/10] eal: fixes for re-initialization issues okaya
2023-08-17  4:28 ` [PATCH v5 03/10] tailq: skip init if already initialized okaya
2023-08-17  4:28 ` [PATCH v5 04/10] eal_memzone: bail out on initialized okaya
2023-08-17  4:28 ` [PATCH v5 05/10] memseg: init once okaya
2023-08-17  4:28 ` [PATCH v5 06/10] eal_memory: skip initialization okaya
2023-08-17  4:28 ` [PATCH v5 07/10] eal_interrupts: don't reinitialize threads okaya
2023-08-17  4:28 ` [PATCH v5 08/10] eal: initialize worker threads once okaya
2023-08-17  4:28 ` [PATCH v5 09/10] eal: declare the reinit via cleanup/init feature unsupported okaya
2023-08-17 13:59   ` Stephen Hemminger
2024-09-25 21:08 ` [PATCH v5 00/10] support reinit flow Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230817042820.137957-2-okaya@kernel.org \
    --to=okaya@kernel.org \
    --cc=dev@dpdk.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.