RE: [PATCH v2] scsi: ufs: mcq: Limit the amount of inflight requests

From: Avri Altman
Date: Thu Apr 20 2023 - 06:08:45 EST



> On 31/03/2023 08:46, Avri Altman wrote:
> > in UFS, each request is designated via the triplet <iid, lun, task tag>.
> >
> > In UFS4.0 the Initiator ID field is 8 bits wide, comprised of the
> > EXT_IID and IID fields. Together with the task tag (single byte), they
> > limit the driver's hw queues capacity.
> >
> > ---
> > v1 -> v2:
> > Attend Johannes's and Bart's comments
> >
> > Signed-off-by: Avri Altman <avri.altman@xxxxxxx>
> > ---
> > drivers/ufs/core/ufshcd.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> > index 35a3bd95c5e4..cac7c9918c5b 100644
> > --- a/drivers/ufs/core/ufshcd.c
> > +++ b/drivers/ufs/core/ufshcd.c
> > @@ -8468,6 +8468,11 @@ static int ufshcd_alloc_mcq(struct ufs_hba *hba)
> > if (ret)
> > goto err;
> >
> > + if (hba->nutrs * hba->nr_hw_queues > SZ_64K - 1) {
>
> If shost->host_tagset is set - which it seems to be for this driver - then the
> number of HW queues would not influence how many IOs the host may be
> sent. Rather this is just limited by just the HW queue depth.
Thanks.
The purpose of this patch is merely to document the ufs spec restrictions.
practically, it impose no functional change.
I will elaborate the commit log accordingly.

Thanks,
Avri

>
> Thanks,
> John
>
> > + dev_info(hba->dev, "there can be at most 64K inflight requests\n");
> > + goto err;
> > + }
> > +
> > /*
> > * Previously allocated memory for nutrs may not be enough in MCQ
> mode.
> > * Number of supported tags in MCQ mode may be larger than SDB
> mode.