lkml.org 
[lkml]   [2022]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] scsi: core: always finish successfully aborted notry command
    From
    On 3/31/22 10:50 PM, Wenchao Hao wrote:
    > If the abort command succeed and it does not need to be retired, do not add
    > it to error handle list.
    >
    > Adding command to error handle list is an annoying flow which would stop I/O
    > of all LUNs which shared a same HBA.
    >
    > So here if we successfully abort a command, we can finish it via
    > scsi_finish_command() which would reduce time spent on scsi_error_handler()
    >
    > Signed-off-by: Wenchao Hao <haowenchao@huawei.com>
    > ---
    > drivers/scsi/scsi_error.c | 55 +++++++++++++++++++++------------------
    > 1 file changed, 29 insertions(+), 26 deletions(-)
    >
    > diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
    > index cdaca13ac1f1..15299603b7ee 100644
    > --- a/drivers/scsi/scsi_error.c
    > +++ b/drivers/scsi/scsi_error.c
    > @@ -173,41 +173,44 @@ scmd_eh_abort_handler(struct work_struct *work)
    > goto out;
    > }
    > set_host_byte(scmd, DID_TIME_OUT);
    > - if (scsi_host_eh_past_deadline(shost)) {
    > - SCSI_LOG_ERROR_RECOVERY(3,
    > - scmd_printk(KERN_INFO, scmd,
    > - "eh timeout, not retrying "
    > - "aborted command\n"));
    > - goto out;
    > - }
    >
    > - spin_lock_irqsave(shost->host_lock, flags);
    > - list_del_init(&scmd->eh_entry);
    > + if (scsi_noretry_cmd(scmd) ||
    > + !scsi_cmd_retry_allowed(scmd) &&
    > + !scsi_eh_should_retry_cmd(scmd)) {


    I don't think this test is correct. Did you want all ||s?

    For what the patch is trying to accomplish I'm not sure if it's
    the behavior people wanted. Do all drivers have configurable
    abort timeouts? If an abort takes N minutes to complete ok,
    and that's put us over the eh deadline maybe the user wanted
    that device to be offlined.

    \
     
     \ /
      Last update: 2022-04-03 18:59    [W:3.029 / U:0.828 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site