All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanley Chu <stanley.chu@mediatek.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: <linux-scsi@vger.kernel.org>, <martin.petersen@oracle.com>,
	<avri.altman@wdc.com>, <alim.akhtar@samsung.com>,
	<jejb@linux.ibm.com>, <beanhuo@micron.com>,
	<asutoshd@codeaurora.org>, <cang@codeaurora.org>,
	<matthias.bgg@gmail.com>, <linux-mediatek@lists.infradead.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <kuohong.wang@mediatek.com>,
	<peter.wang@mediatek.com>, <chun-hung.wu@mediatek.com>,
	<andy.teng@mediatek.com>, <chaotian.jing@mediatek.com>,
	<cc.chou@mediatek.com>
Subject: Re: [PATCH v3] scsi: ufs: Cleanup completed request without interrupt notification
Date: Mon, 13 Jul 2020 10:27:25 +0800	[thread overview]
Message-ID: <1594607245.22878.8.camel@mtkswgap22> (raw)
In-Reply-To: <3d509c4b-d66d-2a4a-5fbd-a50a0610ad31@acm.org>

Hi Bart and Avri,

On Sun, 2020-07-12 at 18:39 -0700, Bart Van Assche wrote:
> On 2020-07-06 06:21, Stanley Chu wrote:
> > If somehow no interrupt notification is raised for a completed request
> > and its doorbell bit is cleared by host, UFS driver needs to cleanup
> > its outstanding bit in ufshcd_abort().
> 
> How is it possible that no interrupt notification is raised for a completed
> request? Is this the result of a hardware shortcoming or rather the result
> of how the UFS driver works? In the latter case, is this patch perhaps a
> workaround? If so, has it been considered to fix the root cause instead of
> implementing a workaround?

Actually this fail is triggered by "error injection" to produce a
command timeout event for checking if anything can be improved or fixed.

I agree that "no interrupt notification" may be something wrong in
hardware and the root cause shall be fixed in the highest priority.
However from this injection, we found ufshcd_abort() indeed has a defect
flow for a corner case, so we are looking for the solution to fix the
"hole".

What would you think if Linux driver shall consider this case? If this
is not necessary, I would drop this patch : )

Thanks a lot,
Stanley Chu

> 
> In section 7.2.3 of the UFS specification I found the following about how
> to process request completions: "Software determines if new TRs have
> completed since step #2, by repeating one of the two methods described in
> step #2. If new TRs have completed, software repeats the sequence from step
> #3." Is such a loop perhaps missing from the Linux UFS driver?
> 
> Thanks,
> 
> Bart.


WARNING: multiple messages have this Message-ID (diff)
From: Stanley Chu <stanley.chu@mediatek.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: linux-scsi@vger.kernel.org, martin.petersen@oracle.com,
	andy.teng@mediatek.com, jejb@linux.ibm.com,
	chun-hung.wu@mediatek.com, kuohong.wang@mediatek.com,
	linux-kernel@vger.kernel.org, avri.altman@wdc.com,
	cang@codeaurora.org, linux-mediatek@lists.infradead.org,
	peter.wang@mediatek.com, alim.akhtar@samsung.com,
	matthias.bgg@gmail.com, asutoshd@codeaurora.org,
	chaotian.jing@mediatek.com, cc.chou@mediatek.com,
	linux-arm-kernel@lists.infradead.org, beanhuo@micron.com
Subject: Re: [PATCH v3] scsi: ufs: Cleanup completed request without interrupt notification
Date: Mon, 13 Jul 2020 10:27:25 +0800	[thread overview]
Message-ID: <1594607245.22878.8.camel@mtkswgap22> (raw)
In-Reply-To: <3d509c4b-d66d-2a4a-5fbd-a50a0610ad31@acm.org>

Hi Bart and Avri,

On Sun, 2020-07-12 at 18:39 -0700, Bart Van Assche wrote:
> On 2020-07-06 06:21, Stanley Chu wrote:
> > If somehow no interrupt notification is raised for a completed request
> > and its doorbell bit is cleared by host, UFS driver needs to cleanup
> > its outstanding bit in ufshcd_abort().
> 
> How is it possible that no interrupt notification is raised for a completed
> request? Is this the result of a hardware shortcoming or rather the result
> of how the UFS driver works? In the latter case, is this patch perhaps a
> workaround? If so, has it been considered to fix the root cause instead of
> implementing a workaround?

Actually this fail is triggered by "error injection" to produce a
command timeout event for checking if anything can be improved or fixed.

I agree that "no interrupt notification" may be something wrong in
hardware and the root cause shall be fixed in the highest priority.
However from this injection, we found ufshcd_abort() indeed has a defect
flow for a corner case, so we are looking for the solution to fix the
"hole".

What would you think if Linux driver shall consider this case? If this
is not necessary, I would drop this patch : )

Thanks a lot,
Stanley Chu

> 
> In section 7.2.3 of the UFS specification I found the following about how
> to process request completions: "Software determines if new TRs have
> completed since step #2, by repeating one of the two methods described in
> step #2. If new TRs have completed, software repeats the sequence from step
> #3." Is such a loop perhaps missing from the Linux UFS driver?
> 
> Thanks,
> 
> Bart.

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Stanley Chu <stanley.chu@mediatek.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: linux-scsi@vger.kernel.org, martin.petersen@oracle.com,
	andy.teng@mediatek.com, jejb@linux.ibm.com,
	chun-hung.wu@mediatek.com, kuohong.wang@mediatek.com,
	linux-kernel@vger.kernel.org, avri.altman@wdc.com,
	cang@codeaurora.org, linux-mediatek@lists.infradead.org,
	peter.wang@mediatek.com, alim.akhtar@samsung.com,
	matthias.bgg@gmail.com, asutoshd@codeaurora.org,
	chaotian.jing@mediatek.com, cc.chou@mediatek.com,
	linux-arm-kernel@lists.infradead.org, beanhuo@micron.com
Subject: Re: [PATCH v3] scsi: ufs: Cleanup completed request without interrupt notification
Date: Mon, 13 Jul 2020 10:27:25 +0800	[thread overview]
Message-ID: <1594607245.22878.8.camel@mtkswgap22> (raw)
In-Reply-To: <3d509c4b-d66d-2a4a-5fbd-a50a0610ad31@acm.org>

Hi Bart and Avri,

On Sun, 2020-07-12 at 18:39 -0700, Bart Van Assche wrote:
> On 2020-07-06 06:21, Stanley Chu wrote:
> > If somehow no interrupt notification is raised for a completed request
> > and its doorbell bit is cleared by host, UFS driver needs to cleanup
> > its outstanding bit in ufshcd_abort().
> 
> How is it possible that no interrupt notification is raised for a completed
> request? Is this the result of a hardware shortcoming or rather the result
> of how the UFS driver works? In the latter case, is this patch perhaps a
> workaround? If so, has it been considered to fix the root cause instead of
> implementing a workaround?

Actually this fail is triggered by "error injection" to produce a
command timeout event for checking if anything can be improved or fixed.

I agree that "no interrupt notification" may be something wrong in
hardware and the root cause shall be fixed in the highest priority.
However from this injection, we found ufshcd_abort() indeed has a defect
flow for a corner case, so we are looking for the solution to fix the
"hole".

What would you think if Linux driver shall consider this case? If this
is not necessary, I would drop this patch : )

Thanks a lot,
Stanley Chu

> 
> In section 7.2.3 of the UFS specification I found the following about how
> to process request completions: "Software determines if new TRs have
> completed since step #2, by repeating one of the two methods described in
> step #2. If new TRs have completed, software repeats the sequence from step
> #3." Is such a loop perhaps missing from the Linux UFS driver?
> 
> Thanks,
> 
> Bart.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-07-13  2:27 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-06 13:21 [PATCH v3] scsi: ufs: Cleanup completed request without interrupt notification Stanley Chu
2020-07-06 13:21 ` Stanley Chu
2020-07-06 13:21 ` Stanley Chu
2020-07-09  8:31 ` Avri Altman
2020-07-09  8:31   ` Avri Altman
2020-07-09  8:31   ` Avri Altman
2020-07-12  1:26   ` Stanley Chu
2020-07-12  1:26     ` Stanley Chu
2020-07-12  1:26     ` Stanley Chu
2020-07-12 10:04     ` Avri Altman
2020-07-12 10:04       ` Avri Altman
2020-07-12 10:04       ` Avri Altman
2020-07-14  8:48       ` Stanley Chu
2020-07-14  8:48         ` Stanley Chu
2020-07-14  8:48         ` Stanley Chu
2020-07-14  9:29         ` Avri Altman
2020-07-14  9:29           ` Avri Altman
2020-07-14  9:29           ` Avri Altman
2020-07-14 10:00           ` Stanley Chu
2020-07-14 10:00             ` Stanley Chu
2020-07-14 10:00             ` Stanley Chu
2020-07-13  1:39 ` Bart Van Assche
2020-07-13  1:39   ` Bart Van Assche
2020-07-13  1:39   ` Bart Van Assche
2020-07-13  2:27   ` Stanley Chu [this message]
2020-07-13  2:27     ` Stanley Chu
2020-07-13  2:27     ` Stanley Chu
2020-07-13  8:10     ` Avri Altman
2020-07-13  8:10       ` Avri Altman
2020-07-13  8:10       ` Avri Altman
2020-07-15  4:00       ` Bart Van Assche
2020-07-15  4:00         ` Bart Van Assche
2020-07-15  4:00         ` Bart Van Assche
2020-07-22 10:07         ` Stanley Chu
2020-07-22 10:07           ` Stanley Chu
2020-07-22 10:07           ` Stanley Chu

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=1594607245.22878.8.camel@mtkswgap22 \
    --to=stanley.chu@mediatek.com \
    --cc=alim.akhtar@samsung.com \
    --cc=andy.teng@mediatek.com \
    --cc=asutoshd@codeaurora.org \
    --cc=avri.altman@wdc.com \
    --cc=beanhuo@micron.com \
    --cc=bvanassche@acm.org \
    --cc=cang@codeaurora.org \
    --cc=cc.chou@mediatek.com \
    --cc=chaotian.jing@mediatek.com \
    --cc=chun-hung.wu@mediatek.com \
    --cc=jejb@linux.ibm.com \
    --cc=kuohong.wang@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=matthias.bgg@gmail.com \
    --cc=peter.wang@mediatek.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.