From 6afb9af3dd7734d0f6bd090fba947ffaec43482b Mon Sep 17 00:00:00 2001
From: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
Date: Mon, 5 Jun 2023 14:44:53 +0800
Subject: [PATCH 06/10] external/fio: reinit global var issue when run multiple
 times

Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
---
 init.c    | 386 +++++++++++++++++++++++++-----------------------------
 smalloc.c |   4 +
 2 files changed, 186 insertions(+), 204 deletions(-)

diff --git fio/init.c fio/init.c
index de9d9d27..9dcad491 100644
--- fio/init.c
+++ fio/init.c
@@ -96,214 +96,191 @@ static bool did_arg;
  * Command line options. These will contain the above, plus a few
  * extra that only pertain to fio itself and not jobs.
  */
-static struct option l_opts[FIO_NR_OPTIONS] = {
-	{
-		.name		= (char *) "output",
-		.has_arg	= required_argument,
-		.val		= 'o' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "latency-log",
-		.has_arg	= required_argument,
-		.val		= 'l' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "bandwidth-log",
-		.has_arg	= no_argument,
-		.val		= 'b' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "minimal",
-		.has_arg	= no_argument,
-		.val		= 'm' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "output-format",
-		.has_arg	= required_argument,
-		.val		= 'F' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "append-terse",
-		.has_arg	= optional_argument,
-		.val		= 'f',
-	},
-	{
-		.name		= (char *) "version",
-		.has_arg	= no_argument,
-		.val		= 'v' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "help",
-		.has_arg	= no_argument,
-		.val		= 'h' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "cmdhelp",
-		.has_arg	= optional_argument,
-		.val		= 'c' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "enghelp",
-		.has_arg	= optional_argument,
-		.val		= 'i' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "showcmd",
-		.has_arg	= no_argument,
-		.val		= 's' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "readonly",
-		.has_arg	= no_argument,
-		.val		= 'r' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "eta",
-		.has_arg	= required_argument,
-		.val		= 'e' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "eta-interval",
-		.has_arg	= required_argument,
-		.val		= 'O' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "eta-newline",
-		.has_arg	= required_argument,
-		.val		= 'E' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "debug",
-		.has_arg	= required_argument,
-		.val		= 'd' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "parse-only",
-		.has_arg	= no_argument,
-		.val		= 'P' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "section",
-		.has_arg	= required_argument,
-		.val		= 'x' | FIO_CLIENT_FLAG,
-	},
+static struct option l_opts[FIO_NR_OPTIONS];
+static void fio_init_global(void)
+{
+	int i = 0;
+
+	l_opts[i].name		= (char *) "output",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'o' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "latency-log",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'l' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "bandwidth-log",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'b' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "minimal",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'm' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "output-format",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'F' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "append-terse",
+	l_opts[i].has_arg	= optional_argument,
+	l_opts[i++].val		= 'f',
+
+	l_opts[i].name		= (char *) "version",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'v' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "help",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'h' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "cmdhelp",
+	l_opts[i].has_arg	= optional_argument,
+	l_opts[i++].val		= 'c' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "enghelp",
+	l_opts[i].has_arg	= optional_argument,
+	l_opts[i++].val		= 'i' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "showcmd",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 's' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "readonly",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'r' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "eta",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'e' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "eta-interval",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'O' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "eta-newline",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'E' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "debug",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'd' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "parse-only",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'P' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "section",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'x' | FIO_CLIENT_FLAG,
+
 #ifdef CONFIG_ZLIB
-	{
-		.name		= (char *) "inflate-log",
-		.has_arg	= required_argument,
-		.val		= 'X' | FIO_CLIENT_FLAG,
-	},
+	l_opts[i].name		= (char *) "inflate-log",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'X' | FIO_CLIENT_FLAG,
 #endif
-	{
-		.name		= (char *) "alloc-size",
-		.has_arg	= required_argument,
-		.val		= 'a' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "profile",
-		.has_arg	= required_argument,
-		.val		= 'p' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "warnings-fatal",
-		.has_arg	= no_argument,
-		.val		= 'w' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "max-jobs",
-		.has_arg	= required_argument,
-		.val		= 'j' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "terse-version",
-		.has_arg	= required_argument,
-		.val		= 'V' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "server",
-		.has_arg	= optional_argument,
-		.val		= 'S',
-	},
+
+	l_opts[i].name		= (char *) "alloc-size",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'a' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "profile",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'p' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "warnings-fatal",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'w' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "max-jobs",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'j' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "terse-version",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'V' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "server",
+	l_opts[i].has_arg	= optional_argument,
+	l_opts[i++].val		= 'S',
+
 #ifdef WIN32
-	{
-		.name		= (char *) "server-internal",
-		.has_arg	= required_argument,
-		.val		= 'N',
-	},
+	l_opts[i].name		= (char *) "server-internal",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'N',
 #endif
-	{	.name		= (char *) "daemonize",
-		.has_arg	= required_argument,
-		.val		= 'D',
-	},
-	{
-		.name		= (char *) "client",
-		.has_arg	= required_argument,
-		.val		= 'C',
-	},
-	{
-		.name		= (char *) "remote-config",
-		.has_arg	= required_argument,
-		.val		= 'R',
-	},
-	{
-		.name		= (char *) "cpuclock-test",
-		.has_arg	= no_argument,
-		.val		= 'T',
-	},
-	{
-		.name		= (char *) "crctest",
-		.has_arg	= optional_argument,
-		.val		= 'G',
-	},
-	{
-		.name		= (char *) "memcpytest",
-		.has_arg	= optional_argument,
-		.val		= 'M',
-	},
-	{
-		.name		= (char *) "idle-prof",
-		.has_arg	= required_argument,
-		.val		= 'I',
-	},
-	{
-		.name		= (char *) "status-interval",
-		.has_arg	= required_argument,
-		.val		= 'L' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= (char *) "trigger-file",
-		.has_arg	= required_argument,
-		.val		= 'W',
-	},
-	{
-		.name		= (char *) "trigger-timeout",
-		.has_arg	= required_argument,
-		.val		= 'B',
-	},
-	{
-		.name		= (char *) "trigger",
-		.has_arg	= required_argument,
-		.val		= 'H',
-	},
-	{
-		.name		= (char *) "trigger-remote",
-		.has_arg	= required_argument,
-		.val		= 'J',
-	},
-	{
-		.name		= (char *) "aux-path",
-		.has_arg	= required_argument,
-		.val		= 'K',
-	},
-	{
-		.name		= (char *) "merge-blktrace-only",
-		.has_arg	= no_argument,
-		.val		= 'A' | FIO_CLIENT_FLAG,
-	},
-	{
-		.name		= NULL,
-	},
-};
+
+	l_opts[i].name		= (char *) "daemonize",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'D',
+
+	l_opts[i].name		= (char *) "client",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'C',
+
+	l_opts[i].name		= (char *) "remote-config",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'R',
+
+	l_opts[i].name		= (char *) "cpuclock-test",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'T',
+
+	l_opts[i].name		= (char *) "crctest",
+	l_opts[i].has_arg	= optional_argument,
+	l_opts[i++].val		= 'G',
+
+	l_opts[i].name		= (char *) "memcpytest",
+	l_opts[i].has_arg	= optional_argument,
+	l_opts[i++].val		= 'M',
+
+	l_opts[i].name		= (char *) "idle-prof",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'I',
+
+	l_opts[i].name		= (char *) "status-interval",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'L' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= (char *) "trigger-file",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'W',
+
+	l_opts[i].name		= (char *) "trigger-timeout",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'B',
+
+	l_opts[i].name		= (char *) "trigger",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'H',
+
+	l_opts[i].name		= (char *) "trigger-remote",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'J',
+
+	l_opts[i].name		= (char *) "aux-path",
+	l_opts[i].has_arg	= required_argument,
+	l_opts[i++].val		= 'K',
+
+	l_opts[i].name		= (char *) "merge-blktrace-only",
+	l_opts[i].has_arg	= no_argument,
+	l_opts[i++].val		= 'A' | FIO_CLIENT_FLAG,
+
+	l_opts[i].name		= NULL,
+
+	thread_number = 0;
+	nr_segments = 0;
+	cur_segment = 0;
+	stat_number = 0;
+
+	did_arg = false;
+	ini_file = NULL;
+	nr_clients = 0;
+	thread_number = 0;
+	prev_group_jobs = 0;
+	memset(&def_thread, 0, sizeof(def_thread));
+	memset(segments, 0, sizeof(segments));
+	memset(cmd_optstr, 0, sizeof(cmd_optstr));
+}
 
 void free_threads_shm(void)
 {
@@ -3044,6 +3021,7 @@ int fio_init_options(void)
 	f_out = stdout;
 	f_err = stderr;
 
+	fio_init_global();
 	fio_options_fill_optstring();
 	fio_options_dup_and_init(l_opts);
 
diff --git fio/smalloc.c fio/smalloc.c
index 142e03d2..a93290eb 100644
--- fio/smalloc.c
+++ fio/smalloc.c
@@ -215,6 +215,10 @@ void sinit(void)
 	bool ret;
 	int i;
 
+	mp = NULL;
+	nr_pools = 0;
+	smalloc_pool_size = INITIAL_SIZE;
+
 	/*
 	 * sinit() can be called more than once if alloc-size is
 	 * set. But we want to allocate space for the struct pool
-- 
2.34.1

