diff options
author | Alexander Motin <[email protected]> | 2024-02-13 14:15:16 -0500 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2024-04-19 10:13:38 -0700 |
commit | 793a2cff2a0cfa97c409ae22ae2dd7399f0f0bdb (patch) | |
tree | 6b8441edf599cb0d947b6e746ea975792b49f382 /include/os | |
parent | fdd97e00934b9a1af7f953333ddf4f7c196907f0 (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.h | 2 |
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 { |