Re: [PATCH 0/5] scsi: fnic: use blk_mq_tagset_busy_iter() to walk scsi commands

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

 



On 4/22/21 4:17 PM, Ming Lei wrote:
> On Thu, Apr 22, 2021 at 08:08:41AM +0800, Ming Lei wrote:
>> On Wed, Apr 21, 2021 at 10:14:56PM +0200, Hannes Reinecke wrote:
>>> On 4/21/21 9:55 AM, Ming Lei wrote:
>>>> Hello Guys,
>>>>
>>>> fnic uses the following way to walk scsi commands in failure handling,
>>>> which is obvious wrong, because caller of scsi_host_find_tag has to
>>>> guarantee that the tag is active.
>>>>
>>>>          for (tag = 0; tag < fnic->fnic_max_tag_id; tag++) {
>>>> 				...
>>>>                  sc = scsi_host_find_tag(fnic->lport->host, tag);
>>>> 				...
>>>> 		}
>>>>
>>>> Fix the issue by using blk_mq_tagset_busy_iter() to walk
>>>> request/scsi_command.
>>>>
>>>> thanks,
>>>> Ming
>>>>
>>>>
>>>> Ming Lei (5):
>>>>    scsi: fnic: use blk_mq_tagset_busy_iter() to walk scsi commands in
>>>>      fnic_terminate_rport_io
>>>>    scsi: fnic: use blk_mq_tagset_busy_iter() to walk scsi commands in
>>>>      fnic_clean_pending_aborts
>>>>    scsi: fnic: use blk_mq_tagset_busy_iter() to walk scsi commands in
>>>>      fnic_cleanup_io
>>>>    scsi: fnic: use blk_mq_tagset_busy_iter() to walk scsi commands in
>>>>      fnic_rport_exch_reset
>>>>    scsi: fnic: use blk_mq_tagset_busy_iter() to walk scsi commands in
>>>>      fnic_is_abts_pending
>>>>
>>>>   drivers/scsi/fnic/fnic_scsi.c | 933 ++++++++++++++++++----------------
>>>>   1 file changed, 493 insertions(+), 440 deletions(-)
>>>>
>>>> Cc: Satish Kharat <satishkh@xxxxxxxxx>
>>>> Cc: Karan Tilak Kumar <kartilak@xxxxxxxxx>
>>>> Cc: David Jeffery <djeffery@xxxxxxxxxx>
>>>>
>>> Well, this is actually not that easy for fnic.
>>> Problem is the reset hack hch put in some time ago (cf
>>> fnic_host_start_tag()), which will cause any TMF to use a tag which is _not_
>>> visible to the busy iter.
>>
>> 'git grep -n fnic_host_start_tag ./' shows nothing.
>>
>>> That will cause the iter to miss any TMF, with unpredictable results if a
>>> TMF is running at the same time than, say, a link bounce.
>>
>> Wrt. linus tree or next tree, I don't see any issue wrt. your concern.
>>
>>>
>>> I have folded this as part of my patchset for reserved commands in SCSI;
>>> that way fnic can use 'normal' tags for TMFs, which are then visible to the
>>> busy iter and life's good.
>>
>> No, this fix is one bug fix, which can't depend on your reserved
>> command in SCSI, and they need to be backported to stable tree too.
> 
> Hi Hannes,
> 
> We have customers report on this issue, could you please let us know
> if you will post out one bug-fix only version?
> 
And so have we, and indeed we have the same bug reports.
So I'll be splitting off those patches and send it as a stand-alone
patchset.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		        Kernel Storage Architect
hare@xxxxxxx			               +49 911 74053 688
SUSE Software Solutions Germany GmbH, 90409 Nürnberg
GF: F. Imendörffer, HRB 36809 (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