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

Manivannan Sadhasivam mani at kernel.org
Mon Sep 26 06:49:42 PDT 2022


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
> 

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



More information about the linux-arm-kernel mailing list