All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Peter Wang (王信友)" <peter.wang@mediatek.com>
To: "bvanassche@acm.org" <bvanassche@acm.org>,
	"martin.petersen@oracle.com" <martin.petersen@oracle.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"manivannan.sadhasivam@linaro.org"
	<manivannan.sadhasivam@linaro.org>,
	"James.Bottomley@HansenPartnership.com"
	<James.Bottomley@HansenPartnership.com>,
	"avri.altman@wdc.com" <avri.altman@wdc.com>,
	"quic_nguyenb@quicinc.com" <quic_nguyenb@quicinc.com>
Subject: Re: [PATCH 12/24] scsi: ufs: core: Rework ufshcd_mcq_compl_pending_transfer()
Date: Tue, 22 Apr 2025 13:07:48 +0000	[thread overview]
Message-ID: <bfd92254331b18f3ee697a8762012caa33973215.camel@mediatek.com> (raw)
In-Reply-To: <e739732d-bc04-4c8f-a129-b974434ce4b2@acm.org>

On Thu, 2025-04-17 at 14:33 -0700, Bart Van Assche wrote:
> Hi Peter,
> 
> My understanding is that the function modified by patch 12/24,
> ufshcd_mcq_compl_pending_transfer(), is only called by the UFS error
> handler. The UFS error handler is only activated after all pending
> requests have completed (MQ_RQ_IDLE) or timed out (MQ_RQ_STARTED).
> No requests should have the state MQ_RQ_COMPLETE when the error
> handler
> is activated.
> 
> Thanks,
> 
> Bart.

Hi Bart,

Yes, ufshcd_mcq_compl_pending_transfer() is only called form error
handler.
Consider a situation where a UIC error occurs and triggers the error
handler, 
followed by receiving a request complete interrupt. 
At this point, the error handler might check this request that hasn't
completed yet, 
and just as it is about to complete it, the tag has already been
completed by 
the ISR. This request status may in MQ_RQ_COMPLETE.

Thanks.
Peter


  reply	other threads:[~2025-04-22 13:08 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-03 21:17 [PATCH 00/24] Optimize the hot path in the UFS driver Bart Van Assche
2025-04-03 21:17 ` [PATCH 01/24] scsi: core: Make scsi_cmd_to_rq() accept const arguments Bart Van Assche
2025-04-04 10:39   ` John Garry
2025-04-04 16:23     ` Bart Van Assche
2025-08-18  6:03   ` Hannes Reinecke
2025-08-18 17:17     ` Bart Van Assche
2025-04-03 21:17 ` [PATCH 02/24] scsi: core: Make scsi_cmd_priv() " Bart Van Assche
2025-04-03 21:17 ` [PATCH 03/24] scsi: core: Use scsi_cmd_priv() instead of open-coding it Bart Van Assche
2025-04-03 21:17 ` [PATCH 04/24] scsi: core: Implement reserved command handling Bart Van Assche
2025-04-04 10:49   ` John Garry
2025-04-04 16:34     ` Bart Van Assche
2025-04-04 17:34       ` John Garry
2025-04-14 21:59         ` Bart Van Assche
2025-04-15 17:21         ` Bart Van Assche
2025-04-16  7:16           ` John Garry
2025-04-16  7:39             ` Hannes Reinecke
2025-04-16  8:23               ` John Garry
2025-04-17 21:25             ` Bart Van Assche
2025-04-22  6:54               ` Hannes Reinecke
2025-08-05 22:33               ` Bart Van Assche
2025-08-07 15:40                 ` Bart Van Assche
2025-04-16  7:33           ` Hannes Reinecke
2025-08-07 16:35             ` Bart Van Assche
2025-04-03 21:17 ` [PATCH 05/24] scsi: core: Introduce scsi_host_update_can_queue() Bart Van Assche
2025-04-03 21:17 ` [PATCH 06/24] scsi: ufs: core: Change the type of one ufshcd_add_cmd_upiu_trace() argument Bart Van Assche
2025-04-09  5:34   ` Avri Altman
2025-04-14 12:47   ` Peter Wang (王信友)
2025-04-03 21:17 ` [PATCH 07/24] scsi: ufs: core: Only call ufshcd_add_command_trace() for SCSI commands Bart Van Assche
2025-04-09  6:24   ` Avri Altman
2025-04-14 12:47   ` Peter Wang (王信友)
2025-04-03 21:17 ` [PATCH 08/24] scsi: ufs: core: Change the type of one ufshcd_add_command_trace() argument Bart Van Assche
2025-04-09  6:32   ` Avri Altman
2025-04-09 16:37     ` Bart Van Assche
2025-04-14 12:47   ` Peter Wang (王信友)
2025-04-03 21:17 ` [PATCH 09/24] scsi: ufs: core: Change the type of one ufshcd_send_command() argument Bart Van Assche
2025-04-09  6:34   ` Avri Altman
2025-04-14 12:48   ` Peter Wang (王信友)
2025-04-03 21:17 ` [PATCH 10/24] scsi: ufs: core: Only call ufshcd_should_inform_monitor() for SCSI commands Bart Van Assche
2025-04-15  7:34   ` Peter Wang (王信友)
2025-04-03 21:17 ` [PATCH 11/24] scsi: ufs: core: Change the monitor function argument types Bart Van Assche
2025-04-15  7:37   ` Peter Wang (王信友)
2025-04-15 20:10     ` Bart Van Assche
2025-04-03 21:17 ` [PATCH 12/24] scsi: ufs: core: Rework ufshcd_mcq_compl_pending_transfer() Bart Van Assche
2025-04-15  8:00   ` Peter Wang (王信友)
2025-04-15 20:22     ` Bart Van Assche
2025-04-17 12:39       ` Peter Wang (王信友)
2025-04-17 21:33         ` Bart Van Assche
2025-04-22 13:07           ` Peter Wang (王信友) [this message]
2025-04-03 21:17 ` [PATCH 13/24] scsi: ufs: core: Rework ufshcd_eh_device_reset_handler() Bart Van Assche
2025-04-03 21:17 ` [PATCH 14/24] scsi: ufs: core: Cache the DMA buffer sizes Bart Van Assche
2025-04-03 21:17 ` [PATCH 15/24] scsi: ufs: core: Add an argument to ufshcd_mcq_decide_queue_depth() Bart Van Assche
2025-04-03 21:18 ` [PATCH 16/24] scsi: ufs: core: Add an argument to ufshcd_alloc_mcq() Bart Van Assche
2025-04-03 21:18 ` [PATCH 17/24] scsi: ufs: core: Call ufshcd_mcq_init() once Bart Van Assche
2025-04-09  6:52   ` Avri Altman
2025-04-09 16:42     ` Bart Van Assche
2025-04-03 21:18 ` [PATCH 18/24] scsi: ufs: core: Allocate the SCSI host earlier Bart Van Assche
2025-04-03 21:18 ` [PATCH 19/24] scsi: ufs: core: Call ufshcd_init_lrb() later Bart Van Assche
2025-04-03 21:18 ` [PATCH 20/24] scsi: ufs: core: Use hba->reserved_slot Bart Van Assche
2025-04-03 21:18 ` [PATCH 21/24] scsi: ufs: core: Allocate the reserved slot as a reserved request Bart Van Assche
2025-04-03 21:18 ` [PATCH 22/24] scsi: ufs: core: Do not clear driver-private command data Bart Van Assche
2025-04-03 21:18 ` [PATCH 23/24] scsi: ufs: core: Optimize the hot path Bart Van Assche
2025-04-03 21:18 ` [PATCH 24/24] scsi: ufs: core: Remove the ufshcd_lrb task_tag member Bart Van Assche
2025-04-04 10:15 ` [PATCH 00/24] Optimize the hot path in the UFS driver John Garry
2025-04-04 17:05   ` Bart Van Assche
2025-04-05 12:03     ` Avri Altman

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=bfd92254331b18f3ee697a8762012caa33973215.camel@mediatek.com \
    --to=peter.wang@mediatek.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=avri.altman@wdc.com \
    --cc=bvanassche@acm.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=martin.petersen@oracle.com \
    --cc=quic_nguyenb@quicinc.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.