]> git.baikalelectronics.ru Git - kernel.git/commit
[SCSI] Fix dm-multipath starvation when scsi host is busy
authorJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Tue, 22 May 2012 09:57:17 +0000 (18:57 +0900)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 23 May 2012 08:34:17 +0000 (09:34 +0100)
commit85fc82f667a365947500e9da094fb212efa54e1e
treee50da550b9b6d7805df8e1f6f3e93b3b48417861
parente05e1a74834fa3bf4a1fd24c99c1e20dff0d34ca
[SCSI] Fix dm-multipath starvation when scsi host is busy

block congestion control doesn't have any concept of fairness across
multiple queues.  This means that if SCSI reports the host as busy in
the queue congestion control it can result in an unfair starvation
situation in dm-mp if there are multiple multipath devices on the same
host.  For example:
http://www.redhat.com/archives/dm-devel/2012-May/msg00123.html

The fix for this is to report only the sdev busy state (and ignore the
host busy state) in the block congestion control call back.
The host is still congested, but the SCSI subsystem will sort out the
congestion in a fair way because it knows the relation between the
queues and the host.

[jejb: fixed up trailing whitespace]
Reported-by: Bernd Schubert <bernd.schubert@itwm.fraunhofer.de>
Tested-by: Bernd Schubert <bernd.schubert@itwm.fraunhofer.de>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/scsi_lib.c