[v1,1/7] eal: fixes for re-initialization issues

Message ID 20230815013826.1288972-2-okaya@kernel.org (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series support reinit flow |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/iol-testing warning apply patch failure
ci/loongarch-compilation warning apply patch failure

Commit Message

Sinan Kaya Aug. 15, 2023, 1:38 a.m. UTC
  From: Graham Whyte <grwhyte@microsoft.com>

reinitialize the solib link list and clean the globals holding
state for parsing.

Signed-off-by: Sinan Kaya <okaya@kernel.org>
Signed-off by: Graham Whyte <graham.whyte@microsoft.com>
---
 lib/eal/common/eal_common_options.c | 7 +++++++
 lib/eal/linux/eal.c                 | 4 +++-
 2 files changed, 10 insertions(+), 1 deletion(-)
  

Comments

Stephen Hemminger Aug. 15, 2023, 2:21 a.m. UTC | #1
On Mon, 14 Aug 2023 21:38:20 -0400
okaya@kernel.org wrote:

> From: Graham Whyte <grwhyte@microsoft.com>
> 
> reinitialize the solib link list and clean the globals holding
> state for parsing.
> 
> Signed-off-by: Sinan Kaya <okaya@kernel.org>
> Signed-off by: Graham Whyte <graham.whyte@microsoft.com>

Please fix all the checkpatch issues.
  
Stephen Hemminger Aug. 15, 2023, 2:24 a.m. UTC | #2
> +	master_lcore_parsed = 0;

The main lcore is no longer called master. DPDK has been working to elimnate
all non-inclusive naming.
  

Patch

diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 2d6535781b..b58df1bc5f 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -1983,6 +1983,13 @@  compute_ctrl_threads_cpuset(struct internal_config *internal_cfg)
 		memcpy(cpuset, &lcore_config[rte_get_main_lcore()].cpuset,
 			sizeof(*cpuset));
 	}
+
+	// Reinitialize solib_list
+	TAILQ_INIT(&solib_list);
+
+	master_lcore_parsed = 0;
+	mem_parsed = 0;
+	core_parsed = 0;
 }
 
 int
diff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c
index 8c118d0d9f..5fd81d71cb 100644
--- a/lib/eal/linux/eal.c
+++ b/lib/eal/linux/eal.c
@@ -78,6 +78,8 @@  struct lcore_config lcore_config[RTE_MAX_LCORE];
 int rte_cycles_vmware_tsc_map;
 
 
+static uint32_t run_once = 0;
+
 int
 eal_clean_runtime_dir(void)
 {
@@ -504,6 +506,7 @@  eal_parse_socket_arg(char *strval, volatile uint64_t *socket_arg)
 		socket_arg[i] = val;
 	}
 
+	__atomic_store_n(&run_once, 0, __ATOMIC_RELAXED);
 	return 0;
 }
 
@@ -960,7 +963,6 @@  int
 rte_eal_init(int argc, char **argv)
 {
 	int i, fctret, ret;
-	static uint32_t run_once;
 	uint32_t has_run = 0;
 	const char *p;
 	static char logid[PATH_MAX];