RE: [PATCH 06/15] qla4xxx: Do not wait for the outstanding commands to complete

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

 



>-----Original Message-----
>From: James Bottomley [mailto:James.Bottomley@xxxxxxx]
>Sent: Tuesday, October 26, 2010 1:27 AM
>To: Vikas Chaudhary
>Cc: Mike Christie; linux-scsi@xxxxxxxxxxxxxxx; Nilesh Javali; Ravi Anand
>Subject: RE: [PATCH 06/15] qla4xxx: Do not wait for the outstanding
>commands to complete
>
>On Mon, 2010-10-11 at 02:24 -0700, Vikas Chaudhary wrote:
>> >-----Original Message-----
>> >From: Mike Christie [mailto:michaelc@xxxxxxxxxxx]
>> >Sent: Friday, October 08, 2010 8:16 AM
>> >To: Vikas Chaudhary
>> >Cc: James.Bottomley@xxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; Nilesh Javali;
>> >Ravi Anand
>> >Subject: Re: [PATCH 06/15] qla4xxx: Do not wait for the outstanding
>> >commands to complete
>> >
>> >On 10/07/2010 12:49 AM, Vikas Chaudhary wrote:
>> >> From: Nilesh Javali<nilesh.javali@xxxxxxxxxx>
>> >>
>> >> Do not wait for the outstanding commands to complete in case of
>> >> firmware hang.
>> >>
>> >> Signed-off-by: Nilesh Javali<nilesh.javali@xxxxxxxxxx>
>> >> Signed-off-by: Vikas Chaudhary<vikas.chaudhary@xxxxxxxxxx>
>> >> Signed-off-by: Ravi Anand<ravi.anand@xxxxxxxxxx>
>> >> ---
>> >>   drivers/scsi/qla4xxx/ql4_os.c |    6 ++++--
>> >>   1 files changed, 4 insertions(+), 2 deletions(-)
>> >>
>> >> diff --git a/drivers/scsi/qla4xxx/ql4_os.c
>> >> b/drivers/scsi/qla4xxx/ql4_os.c index 56962e5..a6455fb 100644
>> >> --- a/drivers/scsi/qla4xxx/ql4_os.c
>> >> +++ b/drivers/scsi/qla4xxx/ql4_os.c
>> >> @@ -1102,7 +1102,8 @@ static int qla4xxx_recover_adapter(struct
>> >scsi_qla_host *ha)
>> >>   		    ha->host_no, __func__));
>> >>   		status = ha->isp_ops->reset_firmware(ha);
>> >>   		if (status == QLA_SUCCESS) {
>> >> -			qla4xxx_cmd_wait(ha);
>> >> +			if (!test_bit(AF_FW_RECOVERY,&ha->flags))
>> >> +				qla4xxx_cmd_wait(ha);
>> >>   			ha->isp_ops->disable_intrs(ha);
>> >>   			qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS);
>> >>   			qla4xxx_abort_active_cmds(ha, DID_RESET<<  16); @@
>-
>> >1119,7
>> >> +1120,8 @@ static int qla4xxx_recover_adapter(struct scsi_qla_host
>*ha)
>> >>   	 * or if stop_firmware fails for ISP-82xx.
>> >>   	 * This is the default case for ISP-4xxx */
>> >>   	if (!is_qla8022(ha) || reset_chip) {
>> >> -		qla4xxx_cmd_wait(ha);
>> >> +		if (!test_bit(AF_FW_RECOVERY,&ha->flags))
>> >> +			qla4xxx_cmd_wait(ha);
>> >>   		qla4xxx_process_aen(ha, FLUSH_DDB_CHANGED_AENS);
>> >>   		qla4xxx_abort_active_cmds(ha, DID_RESET<<  16);
>> >>   		DEBUG2(ql4_printk(KERN_INFO, ha,
>> >
>> >If we go from qla4xxx_eh_host_reset->qla4xxx_recover_adapter and you do
>not
>> >wait, is is possible for the driver to be accessing scsi commands after
>> >qla4xxx_eh_host_reset returns? If so I think there is a problem where
>the
>> >scsi eh will fail or retry the cmd so the memory for the scsi command
>could
>> >be reallocated/freed.
>> >
>>
>> We do not access command after qla4xxx_eh_host_reset returns.
>>
>> >On a related note, has qla4xxx_eh_host_reset ever returned SUCCESS? I
>think
>> >there is a problem in qla4xxx_cmd_wait when the scsi eh is running. At
>that
>> >time blk_finish_request->blk_queue_end_tag is not going to be run,
>because
>> >if the driver were to call scsi_done the block layer would do
>> >blk_complete_request and the blk_mark_rq_complete would fail (this is
>> >because the scsi/block eh timeout could has already marked it complete).
>> >
>> >I think you need the attached patch.
>>
>> Yes. We need attached patch. I am doing some testing with this patch.
>> I will send out this patch for inclusion soon.
>
>Is there an update on this?  It would be nice to include it before the
>merge window closes.
>

I am sending update patch in next email.

Thanks,
Vikas.

ÿô.nlj·Ÿ®‰­†+%ŠË±é¥Šwÿº{.nlj·¥Š{±þÇ‹ø¡Ü}©ž²ÆzÚj:+v‰¨þø®w¥þŠàÞ¨è&¢)ß«a¶Úÿûz¹ÞúŽŠÝjÿŠwèf



[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