All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: Bart Van Assche <bvanassche@acm.org>,
	"Martin K . Petersen" <martin.petersen@oracle.com>
Cc: "James E . J . Bottomley" <jejb@linux.ibm.com>,
	Bean Huo <huobean@gmail.com>, Avri Altman <avri.altman@wdc.com>,
	Alim Akhtar <alim.akhtar@samsung.com>,
	Can Guo <cang@codeaurora.org>,
	Asutosh Das <asutoshd@codeaurora.org>,
	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	Wei Li <liwei213@huawei.com>,
	linux-scsi@vger.kernel.org
Subject: Re: [PATCH V3 1/3] scsi: ufs: Fix error handler clear ua deadlock
Date: Wed, 15 Sep 2021 18:35:43 +0300	[thread overview]
Message-ID: <1072b4e3-8e18-bb6f-f63e-ec07b1404b50@intel.com> (raw)
In-Reply-To: <75bf671f-6dad-906f-3e32-ceeaf3a6a1bd@acm.org>

On 15/09/21 1:28 am, Bart Van Assche wrote:
> On 9/13/21 9:55 PM, Adrian Hunter wrote:
>> On 13/09/21 11:11 pm, Bart Van Assche wrote: >> What am I missing?
>>
>> You have not responded to the issues raised by
>> "scsi: ufs: Synchronize SCSI and UFS error handling"
> 
> Because one of the follow-up messages to that patch was so cryptic that I
> did not comprehend it. Anyway, based on the patch at the start of this email
> thread I assume that the deadlock is caused by calling blk_get_request()
> without the BLK_MQ_REQ_NOWAIT flag from inside a SCSI error handler. How
> about fixing this by removing the code that submits a REQUEST SENSE command
> and calling scsi_report_bus_reset() or scsi_report_device_reset() instead?
> ufshcd_reset_and_restore() already uses that approach to make sure that the
> unit attention condition triggered by a reset is not reported to the SCSI
> command submitter. I think only if needs_restore == true and
> needs_reset == false that ufshcd_err_handler() can trigger a UA condition
> without calling scsi_report_bus_reset().
> 
> The following code from scsi_error.c makes sure that the UA after a reset
> does not reach the upper-level driver:
> 
>     case NOT_READY:
>     case UNIT_ATTENTION:
>         /*
>          * if we are expecting a cc/ua because of a bus reset that we
>          * performed, treat this just as a retry.  otherwise this is
>          * information that we should pass up to the upper-level driver
>          * so that we can deal with it there.
>          */
>         if (scmd->device->expecting_cc_ua) {
>             /*
>              * Because some device does not queue unit
>              * attentions correctly, we carefully check
>              * additional sense code and qualifier so as
>              * not to squash media change unit attention.
>              */
>             if (sshdr.asc != 0x28 || sshdr.ascq != 0x00) {
>                 scmd->device->expecting_cc_ua = 0;
>                 return NEEDS_RETRY;
>             }
>         }
> 
> Bart.


Thanks for the idea.  Unfortunately it does not work for pass-through
requests, refer scsi_noretry_cmd().  sdev_ufs_device and sdev_rpmb are
used with pass-through requests.

  reply	other threads:[~2021-09-15 15:35 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-05  9:51 [PATCH V3 0/3] scsi: ufs: Let devices remain runtime suspended during system suspend Adrian Hunter
2021-09-05  9:51 ` [PATCH V3 1/3] scsi: ufs: Fix error handler clear ua deadlock Adrian Hunter
2021-09-07 14:42   ` Bart Van Assche
2021-09-07 15:43     ` Adrian Hunter
2021-09-07 16:56       ` Bart Van Assche
2021-09-07 22:36         ` Bart Van Assche
2021-09-11 16:47           ` Adrian Hunter
2021-09-13  3:17             ` Bart Van Assche
2021-09-13  8:53               ` Adrian Hunter
2021-09-13 16:33                 ` Bart Van Assche
2021-09-13 17:13                   ` Adrian Hunter
2021-09-13 20:11                     ` Bart Van Assche
2021-09-14  4:55                       ` Adrian Hunter
2021-09-14 22:28                         ` Bart Van Assche
2021-09-15 15:35                           ` Adrian Hunter [this message]
2021-09-15 22:41                             ` Bart Van Assche
2021-09-16 17:01                               ` Adrian Hunter
2021-09-05  9:51 ` [PATCH V3 2/3] scsi: ufs: Fix runtime PM dependencies getting broken Adrian Hunter
2021-09-05  9:51 ` [PATCH V3 3/3] scsi: ufs: Let devices remain runtime suspended during system suspend Adrian Hunter

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=1072b4e3-8e18-bb6f-f63e-ec07b1404b50@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=alim.akhtar@samsung.com \
    --cc=asutoshd@codeaurora.org \
    --cc=avri.altman@wdc.com \
    --cc=bvanassche@acm.org \
    --cc=cang@codeaurora.org \
    --cc=huobean@gmail.com \
    --cc=jejb@linux.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=liwei213@huawei.com \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=martin.petersen@oracle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.