]> granicus.if.org Git - spl/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>
Mon, 31 Aug 2015 22:52:06 +0000 (15:52 -0700)
commit076821eaff146a56aa6a66916d70eda7db3347ed
treec4ed9065bb4e4270c778ae95baaba4464fc0975b
parentae89cf0f34de323c4a7c39bfd9b906acc2635a87
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