Message ID | cover.1663894792.git.quic_asutoshd@quicinc.com (mailing list archive) |
---|---|
Headers | show |
Series | Add Multi Circular Queue Support | expand |
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 >
Hello Mani, Thanks for taking a look at the series. On Mon, Sep 26 2022 at 06:50 -0700, Manivannan Sadhasivam wrote: >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. > Sure, I will add it. I shall wait for more comments from others for some more time before pushing the next version. -asd
On 9/22/22 18:05, Asutosh Das wrote:
> Please take a look and let us know your thoughts.
Except for the comments I added this series looks good to me.
Thanks,
Bart.