[dm-devel] Re: [PATCH] Remove capping from dev_loss_tmo

Mike Christie michaelc at cs.wisc.edu
Thu Dec 17 02:40:48 UTC 2009


Hannes Reinecke wrote:
> Mike Christie wrote:
>> Hannes Reinecke wrote:
>>> diff --git a/drivers/scsi/scsi_transport_fc.c
>>> b/drivers/scsi/scsi_transport_fc.c
>>> index 573ce21..6f39bf4 100644
>>> --- a/drivers/scsi/scsi_transport_fc.c
>>> +++ b/drivers/scsi/scsi_transport_fc.c
>>> @@ -475,7 +475,8 @@ MODULE_PARM_DESC(dev_loss_tmo,
>>>           "Maximum number of seconds that the FC transport should"
>>>           " insulate the loss of a remote port. Once this value is"
>>>           " exceeded, the scsi target is removed. Value should be"
>>> -         " between 1 and SCSI_DEVICE_BLOCK_MAX_TIMEOUT.");
>>> +         " between 1 and SCSI_DEVICE_BLOCK_MAX_TIMEOUT if"
>>> +         " fast_io_fail_tmo is not set.");
>>>  
>> What was the largest timeout value you tried? I think I am hitting a bug
>> with iscsi where if you pass queue_delayed_work a large enough value it
>> will overflow and instead of getting 100 minutes you get 1.
> 
> Well, 0x7fffffff works, 0xffffffff is rejected with -EINVAL.
> And so should every other value with the top bit set.
> 

If someone did 0x7fffffff, then we do 0x7fffffff * HZ in

fc_queue_devloss_work(shost, &rport->dev_loss_work, timeout * HZ);

on a 32bit box, it won't overflow to the value the user wanted will it? 
I think it will not happen normally, but users will try it like they 
have with iscsi and they will end up not knowing how to set it really high.




More information about the dm-devel mailing list