aboutsummaryrefslogtreecommitdiffstats
path: root/include/os
diff options
context:
space:
mode:
authorAlexander Motin <[email protected]>2024-02-13 14:15:16 -0500
committerBrian Behlendorf <[email protected]>2024-04-19 10:13:38 -0700
commit793a2cff2a0cfa97c409ae22ae2dd7399f0f0bdb (patch)
tree6b8441edf599cb0d947b6e746ea975792b49f382 /include/os
parentfdd97e00934b9a1af7f953333ddf4f7c196907f0 (diff)
Linux: Cleanup taskq threads spawn/exit
This changes taskq_thread_should_stop() to limit maximum exit rate for idle threads to one per 5 seconds. I believe the previous one was broken, not allowing any thread exits for tasks arriving more than one at a time and so completing while others are running. Also while there: - Remove taskq_thread_spawn() calls on task allocation errors. - Remove extra taskq_thread_should_stop() call. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Rich Ercolani <[email protected]> Signed-off-by: Alexander Motin <[email protected]> Sponsored by: iXsystems, Inc. Closes #15873
Diffstat (limited to 'include/os')
-rw-r--r--include/os/linux/spl/sys/taskq.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/os/linux/spl/sys/taskq.h b/include/os/linux/spl/sys/taskq.h
index 6c1b4377a..6c0dbbefd 100644
--- a/include/os/linux/spl/sys/taskq.h
+++ b/include/os/linux/spl/sys/taskq.h
@@ -104,7 +104,7 @@ typedef struct taskq {
/* list node for the cpu hotplug callback */
struct hlist_node tq_hp_cb_node;
boolean_t tq_hp_support;
- unsigned long lastshouldstop; /* when to purge dynamic */
+ unsigned long lastspawnstop; /* when to purge dynamic */
} taskq_t;
typedef struct taskq_ent {