aboutsummaryrefslogtreecommitdiffstats
path: root/module/Makefile.in
diff options
context:
space:
mode:
authorOlaf Faaland <[email protected]>2015-10-13 16:56:51 -0700
committerBrian Behlendorf <[email protected]>2015-12-11 16:19:56 -0800
commit326172d8549e0a34a8e4ef4665d8bdfcf7aeda6e (patch)
treea2f510e287126a137fa81d24c2c4f926a4f28740 /module/Makefile.in
parent628fc52137fc14377eba46c66b57d8d094e88507 (diff)
Subclass tq_lock to eliminate a lockdep warning
When taskq_dispatch() calls taskq_thread_spawn() to create a new thread for a taskq, linux lockdep warns of possible recursive locking. This is a false positive. One such call chain is as follows, when a taskq needs more threads: taskq_dispatch->taskq_thread_spawn->taskq_dispatch The initial taskq_dispatch() holds tq_lock on the taskq that needed more worker threads. The later call into taskq_dispatch() takes dynamic_taskq->tq_lock. Without subclassing, lockdep believes these could potentially be the same lock and complains. A similar case occurs when taskq_dispatch() then calls task_alloc(). This patch uses spin_lock_irqsave_nested() when taking tq_lock, with one of two new lock subclasses: subclass taskq TQ_LOCK_DYNAMIC dynamic_taskq TQ_LOCK_GENERAL any other Signed-off-by: Olaf Faaland <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #480
Diffstat (limited to 'module/Makefile.in')
0 files changed, 0 insertions, 0 deletions