[dm-devel] multipath_busy() stalls IO due to scsi_host_is_busy()

Bernd Schubert bernd.schubert at itwm.fraunhofer.de
Wed May 16 14:29:50 UTC 2012


On 05/16/2012 04:06 PM, James Bottomley wrote:
> On Wed, 2012-05-16 at 14:28 +0200, Bernd Schubert wrote:
>> shost->can_queue ->  62 here
>> shost->host_busy ->  62 when one of the multipath groups does IO, further
>> multipath groups then seem to get stalled.
>>
>> I'm not sure yet why multipath_busy() does not stall IO when there is a
>> passive path in the prio group.
>>
>> Any idea how to properly address this problem?
>
> shost->can_queue is supposed to represent the maximum number of possible
> outstanding commands per HBA (i.e. the HBA hardware limit).  Assuming
> the driver got it right, the only way of increasing this is to buy a
> better HBA.

HBA is a mellanox IB adapter. I have not checked yet where the limit of 
62 queue entries comes from. This is also not a real problem. Real 
problem is that multipath suspends IO, although it should not.
As I said, if I remove the functionality of those busy functions 
everything is fine. I think what happens is that dm-multipath suspends 
IO for too long and in the mean time the other path already submits IO 
again. So I guess the underlying problem is an unfair queuing strategy.


Cheers,
Bernd




More information about the dm-devel mailing list