On Thu, Oct 15, 2009 at 05:47:00PM -0700, Vasu Dev wrote:
> diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
> index 7b1e20f..3379da6 100644
> --- a/drivers/scsi/scsi_error.c
> +++ b/drivers/scsi/scsi_error.c
> @@ -331,6 +331,42 @@ static int scsi_check_sense(struct scsi_cmnd *scmd)
> }
> }
>
> +static void scsi_handle_queue_ramp_up(struct scsi_device *sdev)
> +{
> + struct scsi_host_template *sht = sdev->host->hostt;
> + struct scsi_device *tmp_sdev;
> +
> + if (!sht->change_queue_depth ||
> + sdev->queue_depth == sdev->max_queue_depth)
> + return;
[...]
> --- a/drivers/scsi/scsi_scan.c
> +++ b/drivers/scsi/scsi_scan.c
> @@ -251,6 +251,7 @@ static struct scsi_device *scsi_alloc_sdev(struct
> scsi_target *starget,
> sdev->model = scsi_null_device_strs;
> sdev->rev = scsi_null_device_strs;
> sdev->host = shost;
> + sdev->queue_ramp_up_period = SCSI_DEFAULT_RAMP_UP_PERIOD;
> sdev->id = starget->id;
> sdev->lun = lun;
> sdev->channel = starget->channel;
> @@ -312,6 +313,8 @@ static struct scsi_device *scsi_alloc_sdev(struct
> scsi_target *starget,
> }
> }
>
> + sdev->max_queue_depth = sdev->queue_depth;
> +
> return sdev;
Running this patches series with the zfcp device driver increases the
queue_depth beyond the maximum. The problem is that after slave_alloc,
the queue_depth is 1 from cmd_per_lun and this is the value used for
max_queue_depth.
zfcp then adjust the queue_depth and tagging in slave_configure. Now,
the queue_depth is 32 and the max_queue_depth is still 1. And the
check for sdev->queue_depth == sdev->max_queue_depth is never true.
What is the best way to solve this? Move the initial assignment of
max_queue_depth to be called after the call to slave_configure? And/or
adjust the check above to sdev->queue_depth >= sdev->max_queue_depth?
--
Christof
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel