RE: [PATCH 11/15] megaraid_sas: Set device queue_depth same as HBA can_queue value in scsi-mq mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Hannes Reinecke [mailto:hare@xxxxxxx]
> Sent: Friday, June 30, 2017 7:10 PM
> To: Shivasharan S; linux-scsi@xxxxxxxxxxxxxxx
> Cc: martin.petersen@xxxxxxxxxx; thenzl@xxxxxxxxxx;
> jejb@xxxxxxxxxxxxxxxxxx; kashyap.desai@xxxxxxxxxxxx;
> sumit.saxena@xxxxxxxxxxxx; hare@xxxxxxxx; hch@xxxxxx
> Subject: Re: [PATCH 11/15] megaraid_sas: Set device queue_depth same as
> HBA
> can_queue value in scsi-mq mode
>
> On 06/30/2017 10:30 AM, Shivasharan S wrote:
> > Currently driver sets default queue_depth for VDs at 256 and JBODs
> > based on interface type, ie., for SAS JBOD QD will be 64, for SATA JBOD
> > QD will
> be 32.
> > During performance runs with scsi-mq enabled, we are seeing better
> > results by setting QD same as HBA queue_depth.
> >
> > Signed-off-by: Kashyap Desai <kashyap.desai@xxxxxxxxxxxx>
> > Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@xxxxxxxxxxxx>
> > ---
> >  drivers/scsi/megaraid/megaraid_sas_base.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c
> > b/drivers/scsi/megaraid/megaraid_sas_base.c
> > index 0230929..c200f1a 100644
> > --- a/drivers/scsi/megaraid/megaraid_sas_base.c
> > +++ b/drivers/scsi/megaraid/megaraid_sas_base.c
> > @@ -1891,7 +1891,8 @@ static void
> megasas_set_static_target_properties(struct scsi_device *sdev,
> >  	if (instance->nvme_page_size && max_io_size_kb)
> >  		megasas_set_nvme_device_properties(sdev, (max_io_size_kb
> << 10));
> >
> > -	scsi_change_queue_depth(sdev, device_qd);
> > +	if (!shost_use_blk_mq(sdev->host))
> > +		scsi_change_queue_depth(sdev, device_qd);
> >
> >  }
> >
> > @@ -5914,6 +5915,9 @@ static int megasas_io_attach(struct
> megasas_instance *instance)
> >  	host->max_lun = MEGASAS_MAX_LUN;
> >  	host->max_cmd_len = 16;
> >
> > +	if (shost_use_blk_mq(host))
> > +		host->cmd_per_lun = host->can_queue;
> > +
> >  	/*
> >  	 * Notify the mid-layer about the new controller
> >  	 */
> >
> Is this bit really necessary? It will be adjusted by the above hunk, would
> it not?
>

The default cmd_per_lun is now set to 256 (MEGASAS_DEFAULT_CMD_PER_LUN).
In the above snip, we are changing cmd_per_lun to be equal to HBA
queue_depth for multiqueue enabled case.
So any scsi_device getting configured with scsi-mq enabled will have
queue_depth
set to cmd_per_lun value.
The hunk in megasas_set_static_target_properties is to update
the queue_depth for non-mq case only based on value provided by firmware.

Thanks,
Shivasharan

> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke		   Teamlead Storage & Networking
> hare@xxxxxxx			               +49 911 74053 688
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284
> (AG
> Nürnberg)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux