diff --git a/SOURCES/0001-config-Add-max_worker_threads.patch b/SOURCES/0001-config-Add-max_worker_threads.patch new file mode 100644 index 0000000..cdbaf01 --- /dev/null +++ b/SOURCES/0001-config-Add-max_worker_threads.patch @@ -0,0 +1,69 @@ +From e722c69cef883af1f7d60cbb2708f0092dbf2ab0 Mon Sep 17 00:00:00 2001 +From: Nir Soffer +Date: Mon, 30 Nov 2020 15:02:33 -0600 +Subject: [PATCH] config: Add max_worker_threads + +Concurrent async add_lockspace calls are limited by the number of worker +threads. Using larger number of worker threads shorten the time to add +many locksapces in large setups. + +Previously this value could be modified only via the command line. Now +it can be modified via the sanlock configuration file for easier +deployment. + +Buglink: https://bugzilla.redhat.com/1902468 +Signed-off-by: Nir Soffer +--- + src/main.c | 7 +++++++ + src/sanlock.8 | 5 +++++ + src/sanlock.conf | 3 +++ + 3 files changed, 15 insertions(+) + +diff --git a/src/main.c b/src/main.c +index e2901f3667a9..63d8cffd036c 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -2877,6 +2877,13 @@ static void read_config_file(void) + } else { + log_error("ignore unknown max_sectors_kb %s", str); + } ++ ++ } else if (!strcmp(str, "max_worker_threads")) { ++ get_val_int(line, &val); ++ if (val < DEFAULT_MIN_WORKER_THREADS) ++ val = DEFAULT_MIN_WORKER_THREADS; ++ com.max_worker_threads = val; ++ + } + } + +diff --git a/src/sanlock.8 b/src/sanlock.8 +index a9126a484cf4..2021b4ac2f5a 100644 +--- a/src/sanlock.8 ++++ b/src/sanlock.8 +@@ -1372,6 +1372,11 @@ The io timeout to use when initializing ondisk lease structures + for a lockspace or resource. This timeout is not used as a part + of either lease algorithm (as the standard io_timeout is.) + ++.IP \[bu] 2 ++max_worker_threads = ++.br ++See -t ++ + .SH SEE ALSO + .BR wdmd (8) + +diff --git a/src/sanlock.conf b/src/sanlock.conf +index 9b78e5cff236..2909a9cbc9d6 100644 +--- a/src/sanlock.conf ++++ b/src/sanlock.conf +@@ -66,3 +66,6 @@ + # + # write_init_io_timeout = + # command line: n/a ++# ++# max_worker_threads = 8 ++# command line: -t 8 +-- +2.7.5 + diff --git a/SOURCES/0002-sanlock-Report-actual-max_worker_threads.patch b/SOURCES/0002-sanlock-Report-actual-max_worker_threads.patch new file mode 100644 index 0000000..361ac35 --- /dev/null +++ b/SOURCES/0002-sanlock-Report-actual-max_worker_threads.patch @@ -0,0 +1,37 @@ +From 32a73a539432dbbca7187ddafd4a2b2ae91ea1f8 Mon Sep 17 00:00:00 2001 +From: Nir Soffer +Date: Sun, 6 Dec 2020 20:14:11 +0200 +Subject: [PATCH] sanlock: Report actual max_worker_threads + +Report actual max_worker_threads in "sanlock client status -D". This +allows detecting the issue when sanlock configuration was updated, but +sanlock daemon needs a restart to pick up the new configuration. + +Signed-off-by: Nir Soffer +--- + src/cmd.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/cmd.c b/src/cmd.c +index a5fa30f0680f..3137df08cd84 100644 +--- a/src/cmd.c ++++ b/src/cmd.c +@@ -2265,6 +2265,7 @@ static int print_state_daemon(char *str) + "max_sectors_kb_ignore=%d " + "max_sectors_kb_align=%d " + "max_sectors_kb_num=%d " ++ "max_worker_threads=%d " + "write_init_io_timeout=%u " + "use_aio=%d " + "kill_grace_seconds=%d " +@@ -2292,6 +2293,7 @@ static int print_state_daemon(char *str) + com.max_sectors_kb_ignore, + com.max_sectors_kb_align, + com.max_sectors_kb_num, ++ com.max_worker_threads, + com.write_init_io_timeout, + main_task.use_aio, + kill_grace_seconds, +-- +2.7.5 + diff --git a/SPECS/sanlock.spec b/SPECS/sanlock.spec index bde81e6..6ba19cc 100644 --- a/SPECS/sanlock.spec +++ b/SPECS/sanlock.spec @@ -1,6 +1,6 @@ Name: sanlock Version: 3.8.2 -Release: 1%{?dist} +Release: 3%{?dist} Summary: A shared storage lock manager Group: System Environment/Base @@ -23,6 +23,9 @@ Requires(preun): systemd-units Requires(postun): systemd-units Source0: https://releases.pagure.org/sanlock/%{name}-%{version}.tar.gz +Patch0: 0001-config-Add-max_worker_threads.patch +Patch1: 0002-sanlock-Report-actual-max_worker_threads.patch + %global python_package python3-%{name} %description @@ -31,6 +34,9 @@ The sanlock daemon manages leases for applications on hosts using shared storage %prep %setup -q +%patch0 -p1 -b .0001-config-Add-max_worker_threads.patch +%patch1 -p1 -b .0002-sanlock-Report-actual-max_worker_threads.patch + %build # upstream does not require configure # upstream does not support _smp_mflags @@ -183,6 +189,12 @@ common sanlock lockspace. %changelog +* Tue Jan 12 2021 David Teigland 3.8.2-3 +- rebuild with new version number + +* Wed Jan 06 2021 David Teigland 3.8.2-2 +- allow max_worker_threads to be set in config file + * Mon Aug 10 2020 David Teigland 3.8.2-1 - Update to sanlock-3.8.2