]> git.proxmox.com Git - mirror_spl.git/commit
Create a new thread during recursive taskq dispatch if necessary
authorTim Chase <tim@chase2k.com>
Thu, 27 Aug 2015 16:13:20 +0000 (11:13 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 1 Sep 2015 15:46:41 +0000 (08:46 -0700)
commita64e55752f4e88dcb544f2480100dcd6f6be3277
treec2e2a190ec0331ff1c154fd0eb0e04d6206850fc
parent801b56090b42763d1d3b2593bb8d731d0d8fef22
Create a new thread during recursive taskq dispatch if necessary

When dynamic taskq is enabled and all threads for a taskq are occupied,
a recursive dispatch can cause a deadlock if calling thread depends on
the recursively-dispatched thread for its return condition.

This patch attempts to create a new thread for recursive dispatch when
none are available.

Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #472
module/spl/spl-taskq.c