Re: [PATCH v2 10/11] megaraid_sas: Use Block layer API to check SCSI device in-flight IO requests

John Garry
2020-02-26T16:19:56Z

On 17/01/2020 11:19, Anand Lodnoor wrote:
> Hannes,
> Thank you for pointing it out. Will incorporate the suggested
> changes in the upcoming patches.

It doesn't look like this suggested change was incorporated in the end.

So I am rebasing series
https://lore.kernel.org/linux-block/20191202153914.84722-1-hare@suse.de/,
and this patch conflicts. But I did think that this was a strange
change, apart from that.

> Thanks & Regards,
> Anand R.L
>
> -----Original Message-----
> From: Hannes Reinecke [mailto:hare@suse.de]
> Sent: Thursday, January 16, 2020 6:01 PM
> To: Anand Lodnoor<anand.lodnoor@broadcom.com>;linux-scsi@vger.kernel.org
> Cc:kashyap.desai@broadcom.com;sumit.saxena@broadcom.com;
> kiran-kumar.kasturi@broadcom.com;sankar.patra@broadcom.com;
> sasikumar.pc@broadcom.com;shivasharan.srikanteshwara@broadcom.com;
> chandrakanth.patil@broadcom.com
> Subject: Re: [PATCH v2 10/11] megaraid_sas: Use Block layer API to check
> SCSI device in-flight IO requests
>
> On 1/14/20 12:21 PM, Anand Lodnoor wrote:
>> Remove usage of device_busy counter from driver. Instead of
>> device_busy counter now driver uses 'nr_active' counter of
>> request_queue to get the number of inflight request for a LUN.

Is blk_mq_hw_ctx.nr_active really the same as scsi_device.device_busy?

Thanks,
John

>>
>> Link :https://patchwork.kernel.org/patch/11249297/
>> Signed-off-by: Chandrakanth Patil<chandrakanth.patil@broadcom.com>
>> Signed-off-by: Anand Lodnoor<anand.lodnoor@broadcom.com>
>> ---
>> drivers/scsi/megaraid/megaraid_sas_fusion.c | 56
>> ++++++++++++++++-------------
>> 1 file changed, 31 insertions(+), 25 deletions(-)
>>
>> diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c
>> b/drivers/scsi/megaraid/megaraid_sas_fusion.c
>> index 0bdd477..f3b36fd 100644
>> --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
>> +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
>> @@ -364,6 +364,35 @@ inline void megasas_return_cmd_fusion(struct
>> megasas_instance *instance,
>> instance->max_fw_cmds = instance->max_fw_cmds-1;
>> }
>> }
>> +
>> +static inline void
>> +megasas_get_msix_index(struct megasas_instance *instance,
>> + struct scsi_cmnd *scmd,
>> + struct megasas_cmd_fusion *cmd,
>> + u8 data_arms)
>> +{
>> + int sdev_busy;
>> +
>> + /* nr_hw_queue = 1 for MegaRAID */
>> + struct blk_mq_hw_ctx *hctx =
>> + scmd->device->request_queue->queue_hw_ctx[0];
>> +
> While this might be true it would be better to use the hctx from the request
> itself:
>
> struct blk_mq_hw_ctx *hctx = scmd->request->mq_hctx;
>
> Cheers,
>
> Hannes
> -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@suse.de +49
> 911 74053 688 SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409
> Nürnberg HRB 36809 (AG Nürnberg), GF: Felix Imendörffer