Re: [PATCH v1 00/16] Add Multi Circular Queue Support

Manivannan Sadhasivam
2022-09-26T15:12:22Z

On Thu, Sep 22, 2022 at 06:05:07PM -0700, Asutosh Das wrote:
>
> UFS Multi-Circular Queue (MCQ) has been added in UFSHCI v4.0 to improve storage performance.
> This patch series is a RFC implementation of this.

This is no more an RFC series. Also, it would be good if you can provide a
summary on how the implementation has been done.

Thanks,
Mani

>
> This is the initial driver implementation and it has been verified by booting on an emulation
> platform. During testing, all low power modes were disabled and it was in HS-G1 mode.
>
> Please take a look and let us know your thoughts.
>
> v1:
> - Split the changes
> - Addressed Bart's comments
> - Addressed Bean's comments
>
> * RFC versions:
> v2 -> v3:
> - Split the changes based on functionality
> - Addressed queue configuration issues
> - Faster SQE tail pointer increments
> - Addressed comments from Bart and Manivannan
>
> v1 -> v2:
> - Enabled host_tagset
> - Added queue num configuration support
> - Added one more vops to allow vendor provide the wanted MAC
> - Determine nutrs and can_queue by considering both MAC, bqueuedepth and EXT_IID support
> - Postponed MCQ initialization and scsi_add_host() to async probe
> - Used (EXT_IID, Task Tag) tuple to support up to 4096 tasks (theoretically)
>
> Asutosh Das (16):
> ufs: core: Probe for ext_iid support
> ufs: core: Introduce Multi-circular queue capability
> ufs: core: Defer adding host to scsi if mcq is supported
> ufs: core: mcq: Introduce Multi Circular Queue
> ufs: core: mcq: Configure resource regions
> ufs: core: mcq: Calculate queue depth
> ufs: core: mcq: Allocate memory for mcq mode
> ufs: core: mcq: Configure operation and runtime interface
> ufs: core: mcq: Use shared tags for MCQ mode
> ufs: core: Prepare ufshcd_send_command for mcq
> ufs: core: mcq: Find hardware queue to queue request
> ufs: core: Prepare for completion in mcq
> ufs: mcq: Add completion support of a cqe
> ufs: core: mcq: Add completion support in poll
> ufs: core: mcq: Enable Multi Circular Queue
> ufs: qcom-host: Enable multi circular queue capability
>
> drivers/ufs/core/Makefile | 2 +-
> drivers/ufs/core/ufs-mcq.c | 511 +++++++++++++++++++++++++++++++++++++++++
> drivers/ufs/core/ufshcd-priv.h | 84 ++++++-
> drivers/ufs/core/ufshcd.c | 322 +++++++++++++++++++++-----
> drivers/ufs/host/ufs-qcom.c | 49 ++++
> drivers/ufs/host/ufs-qcom.h | 4 +
> include/ufs/ufs.h | 6 +
> include/ufs/ufshcd.h | 136 +++++++++++
> include/ufs/ufshci.h | 63 +++++
> 9 files changed, 1117 insertions(+), 60 deletions(-)
> create mode 100644 drivers/ufs/core/ufs-mcq.c
>
> --
> 2.7.4
>

--
மணிவண்ணன் சதாசிவம்