Re: [EXT] [PATCH v1 5/5] scsi: ufs: Complete pending requests in host reset and restore path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2019-11-14 06:04, Bean Huo (beanhuo) wrote:

In UFS host reset and restore path, before probe, we stop and start the host controller once. After host controller is stopped, the pending requests, if any, are cleared from the doorbell, but no completion IRQ would be raised due to the
hba is stopped.
These pending requests shall be completed along with the first NOP_OUT
command(as it is the first command which can raise a transfer completion
IRQ) sent during probe.

Hi, Can
I am not sure for this point, because there is HW/SW device reset
before or after host reset/restore.
Device HW/SW reset also will clear the pended tasks in device side.
That will be better.
I think Qcom platform already enabled HW reset.

//Bean


Hi Bean,

By pending tasks here, it means the requests sent down from scsi/block layer, but have not yet been handled by ufs driver(cmd->scsi_done() have not been called yet for these requests). For these requests, although removed by host and UFS device in their HW queues(doorbell), UFS driver still needs to complete them from SW side(call cmd->scsi_done() for each one of them) to let upper layer know that they are finished(although not successfully) to avoid hitting
timeout of these pending tasks. I hope I make my explanation clearly.

Best Regards,
Can Guo.

Since the OCSs of these pending requests are not SUCCESS(because they are not yet literally finished), their UPIUs shall be dumped. When there are multiple pending requests, the UPIU dump can be overwhelming and may lead to stability
issues because it is in atomic context.
Therefore, before probe, complete these pending requests right after host
controller is stopped.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux