[SCSI] libfc: reduce hold time on SCSI host lock
authorChris Leech <christopher.leech@intel.com>
Thu, 10 Dec 2009 17:59:26 +0000 (09:59 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 12 Dec 2009 22:30:33 +0000 (16:30 -0600)
commitc1ecb90a66c5afc7cc5c9349f9c3714eef4a5cfb
tree9240283c872e0c110c0fef2e424180fc62bed487
parent5543c72e2bbb30e5ba5938b18ec26617b8b3fb04
[SCSI] libfc: reduce hold time on SCSI host lock

Introduce a new lock to protect the list of fc_fcp_pkt structs in libfc
instead of using the host lock.  This reduces the contention of this heavily
used lock, and I see up to a 25% performance gain in CPU bound small I/O
tests when scaling out across multiple quad-core CPUs.

The big win is in removing the host lock from the completion path
completely, as it does not need to be held around the call to scsi_done.

Signed-off-by: Chris Leech <christopher.leech@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_fcp.c