> -----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)