]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: efct: Decrease area under spinlock
authorDmitry Bogdanov <d.bogdanov@yadro.com>
Tue, 14 Sep 2021 10:55:39 +0000 (13:55 +0300)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 22 Sep 2021 04:04:56 +0000 (00:04 -0400)
commite2961f2692fa4ea8934b5128b067418ae86a1f00
tree4b5faf223d55af02c8bc96c973dee6bccdb2763e
parentef27d7e9364bad9562c6add4176e0b628e048fe5
scsi: efct: Decrease area under spinlock

Under the session level spinlock node->active_ios_lock in
efct_scsi_io_alloc() we are taking another spinlock for the port.  This
leads to contention between sessions and even between I/Os in the same
session.

Reduce the locked region to active_ios list for which active_ios_lock is
intended. Spinlock CPU usage decreases from 18% down to 13%. IOPS are
increased from 220 kIOPS to 264 kIOPS for one LUN.

Link: https://lore.kernel.org/r/20210914105539.6942-4-d.bogdanov@yadro.com
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Reviewed-by: Ram Vegesna <ram.vegesna@broadcom.com>
Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/elx/efct/efct_scsi.c