]> git.proxmox.com Git - mirror_spl.git/commit
Use tsd to store tq for taskq_member
authorChunwei Chen <david.chen@osnexus.com>
Wed, 2 Dec 2015 22:52:46 +0000 (14:52 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 20 Jan 2016 21:07:45 +0000 (13:07 -0800)
commit16522ac29023d94bc29e97761b01b252117cbbfe
treec05042fbea285fe0c73640afd915b3a3d69c8476
parentde77e245902cc5bb6c22591d54e31c7647ff912f
Use tsd to store tq for taskq_member

To prevent taskq_member holding tq_lock and doing linear search, thus causing
contention. We store the taskq pointer to which the thread belongs in tsd.
This way taskq_member will not need to touch tq_lock, and tsd has per slot
spinlock. So the contention should be reduced greatly.

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #500
Closes #504
Closes #505
include/sys/taskq.h
include/sys/tsd.h
module/spl/spl-generic.c
module/spl/spl-taskq.c
module/spl/spl-tsd.c