summaryrefslogtreecommitdiff
path: root/drivers/nvme/host/core.c
diff options
context:
space:
mode:
authorRoland Dreier <roland@purestorage.com>2017-08-29 10:33:44 -0700
committerChristoph Hellwig <hch@lst.de>2017-08-30 14:51:22 +0200
commit489beb91e66a237254e23ac1a0fe1beac23d87c5 (patch)
tree691ea6f4c3c58798b364c927aa80af998c3f555d /drivers/nvme/host/core.c
parent2b76da95638010a70435f8455913133acc26e93f (diff)
nvme-fabrics: Convert nvmf_transports_mutex to an rwsem
The mutex protects against the list of transports changing while a controller is being created, but using a plain old mutex means that it also serializes controller creation. This unnecessarily slows down creating multiple controllers - for example for the RDMA transport, creating a controller involves establishing one connection for every IO queue, which involves even more network/software round trips, so the delay can become significant. The simplest way to fix this is to change the mutex to an rwsem and only hold it for writing when the list is being mutated. Since we can take the rwsem for reading while creating a controller, we can create multiple controllers in parallel. Signed-off-by: Roland Dreier <roland@purestorage.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/nvme/host/core.c')
0 files changed, 0 insertions, 0 deletions