On Mon, 2013-06-03 at 16:21 -0700, K. Y. Srinivasan wrote:
> The standard scsi timeout is not appropriate in some of the environments where
> Hyper-V is deployed. Set this timeout appropriately for all devices managed
> by this driver. Further make this a module parameter.
> 
> Signed-off-by: K. Y. Srinivasan <k...@microsoft.com>
> Reviewed-by: Haiyang Zhang <haiya...@microsoft.com>
> ---
>  drivers/scsi/storvsc_drv.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> index 16a3a0c..8d29a95 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -221,6 +221,13 @@ static int storvsc_ringbuffer_size = (20 * PAGE_SIZE);
>  module_param(storvsc_ringbuffer_size, int, S_IRUGO);
>  MODULE_PARM_DESC(storvsc_ringbuffer_size, "Ring buffer size (bytes)");
>  
> +/*
> + * Timeout in seconds for all devices managed by this driver.
> + */
> +static int storvsc_timeout = 180;
> +module_param(storvsc_timeout, uint, (S_IRUGO | S_IWUSR));
> +MODULE_PARM_DESC(storvsc_timeout, "Device timeout (seconds)");
> +
>  #define STORVSC_MAX_IO_REQUESTS                              128
>  
>  /*
> @@ -1204,6 +1211,8 @@ static int storvsc_device_configure(struct scsi_device 
> *sdevice)
>  
>       blk_queue_bounce_limit(sdevice->request_queue, BLK_BOUNCE_ANY);
>  
> +     blk_queue_rq_timeout(sdevice->request_queue, (storvsc_timeout * HZ));

Why does this need to be a module parameter?  It's already a sysfs one
in the scsi_device class?  Three minutes is also a bit large.  The
default is 30s with huge cache arrays recommending upping this to
60s ... you're three times this.

James

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to