From: Hannes Reinecke <hare@suse.de>
To: JiangJianJun <jiangjianjun3@huawei.com>,
jejb@linux.ibm.com, martin.petersen@oracle.com,
linux-scsi@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, lixiaokeng@huawei.com,
hewenliang4@huawei.com, yangkunlin7@huawei.com
Subject: Re: [RFC PATCH v3 00/19] scsi: scsi_error: Introduce new error handle mechanism
Date: Fri, 14 Mar 2025 10:01:40 +0100 [thread overview]
Message-ID: <f35b2485-588b-40c4-a2e7-1bb65fb7a9fc@suse.de> (raw)
In-Reply-To: <20250314012927.150860-1-jiangjianjun3@huawei.com>
On 3/14/25 02:29, JiangJianJun wrote:
> It's unbearable for systems with large scale scsi devices share HBAs to
> block all devices' IOs when handle error commands, we need a new error
> handle mechanism to address this issue.
>
> I consulted about this issue a year ago, the discuss link can be found in
> refenence. Hannes replied about why we have to block the SCSI host
> then perform error recovery kindly. I think it's unnecessary to block
> SCSI host for all drivers and can try a small level recovery(LUN based for
> example) first to avoid block the SCSI host.
>
Technically, yes.
There are, however, some issues which would need to be addressed if
someone would design a new error handler.
1. The 'LUN Reset' TMF (as it's currently being used) is badly scoped;
it will reset the LUN itself, affecting all ports to that LUN.
So in a multipathed/multiported environment all initiators will be
affected, even if they haven't experienced an error.
Is that what we want?
Shouldn't we rather use the 'Reset IT Nexus' TMF here?
And, of course, the 'Target Reset' TMF has been dropped from SAM,
so I really don't see the point in spending time here ...
2. Irrespective of the EH granularity, any error handing requires
that all activity on the level has to be stopped. If you need to
issue a LUN reset, you need to stop I/O for that LUN.
3. The current EH framework is designed around 'struct scsi_cmnd'.
Which means that the command _initiating_ the error handling can
only be returned once the _entire_ error handling (with all
escalations) is finished. And more often than not, the application
is waiting on that command to be completed before the next I/O
is sent. And that really limits the effectiveness of any improved
error handler; the application ultimatively has to wait for a
host reset before it can contine.
But anyway.
We already have a mechanism for asynchronous command aborts;
have you checked if you can adapt if for LUN reset, too?
That would be the easiest solution, I guess ...
Cheers,
Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich
next prev parent reply other threads:[~2025-03-14 9:01 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-14 1:29 [RFC PATCH v3 00/19] scsi: scsi_error: Introduce new error handle mechanism JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 01/19] scsi: scsi_error: Define framework for LUN/target based error handle JiangJianJun
2025-03-14 1:49 ` Bart Van Assche
2025-03-14 1:29 ` [RFC PATCH v3 02/19] scsi: scsi_error: Move complete variable eh_action from shost to sdevice JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 03/19] scsi: scsi_error: Check if to do reset in scsi_try_xxx_reset JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 04/19] scsi: scsi_error: Add helper scsi_eh_sdev_stu to do START_UNIT JiangJianJun
2025-04-24 9:27 ` Diangang Li
2025-03-14 1:29 ` [RFC PATCH v3 05/19] scsi: scsi_error: Add helper scsi_eh_sdev_reset to do lun reset JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 06/19] scsi: scsi_error: Add flags to mark error handle steps has done JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 07/19] scsi: scsi_error: Add helper to handle scsi device's error command list JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 08/19] scsi: scsi_error: Add a general LUN based error handler JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 09/19] scsi: core: increase/decrease target_busy without check can_queue JiangJianJun
2025-03-14 1:35 ` Bart Van Assche
2025-03-14 1:29 ` [RFC PATCH v3 10/19] scsi: scsi_error: Add helper to handle scsi target's error command list JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 11/19] scsi: scsi_error: Add a general target based error handler JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 12/19] scsi: scsi_debug: Add param to control LUN bassed " JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 13/19] scsi: scsi_debug: Add param to control target based error handle JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 14/19] scsi: mpt3sas: Add param to control LUN " JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 15/19] scsi: mpt3sas: Add param to control target " JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 16/19] scsi: smartpqi: Add param to control LUN " JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 17/19] scsi: megaraid_sas: Add param to control target " JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 18/19] scsi: virtio_scsi: Add param to control LUN " JiangJianJun
2025-03-14 1:29 ` [RFC PATCH v3 19/19] scsi: iscsi_tcp: " JiangJianJun
2025-03-14 9:01 ` Hannes Reinecke [this message]
2025-03-14 15:55 ` [RFC PATCH v3 00/19] scsi: scsi_error: Introduce new error handle mechanism Bart Van Assche
2025-04-24 9:44 ` Diangang Li
2025-03-20 6:05 ` Christoph Hellwig
2025-03-31 3:10 ` 答复: " Jiangjianjun
2025-03-31 7:50 ` John Garry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f35b2485-588b-40c4-a2e7-1bb65fb7a9fc@suse.de \
--to=hare@suse.de \
--cc=hewenliang4@huawei.com \
--cc=jejb@linux.ibm.com \
--cc=jiangjianjun3@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lixiaokeng@huawei.com \
--cc=martin.petersen@oracle.com \
--cc=yangkunlin7@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox