Message ID | 20230419094838.136349-1-hy50.seo@samsung.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [v1] scsi: ufs: mcq: add 1 to the max Queues value | expand |
Hi, SEO HOYOUNG <hy50.seo@samsung.com> 於 2023年4月19日 週三 下午5:56寫道: > > If read the MAXQ field value verbatim, can use a value > that is one less than the supported Queue. > So read the MAXQ field value and incremented it by one > > below is the specification > Maximum number of Queues (MAXQ): > Maximum number of Queues this controller can support. > In this version of specification, maximum value is 31. > > NOTE To support 1:1 topology, the Host HW controller must support > HW resources for MAXQ number of Completion Queues too. > Host SW may use less number of completion queues for N:1 topology..:1 Queue > 0: 1 Queue > 1: 2 Queues > … > 31: 32 Queues > 32-255 : reserved > > Signed-off-by: SEO HOYOUNG <hy50.seo@samsung.com> > --- > drivers/ufs/core/ufs-mcq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c > index 31df052fbc41..a1ee3318c605 100644 > --- a/drivers/ufs/core/ufs-mcq.c > +++ b/drivers/ufs/core/ufs-mcq.c > @@ -150,7 +150,7 @@ static int ufshcd_mcq_config_nr_queues(struct ufs_hba *hba) > u32 hba_maxq, rem, tot_queues; > struct Scsi_Host *host = hba->host; > > - hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities); > + hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities) + 1; > > tot_queues = UFS_MCQ_NUM_DEV_CMD_QUEUES + read_queues + poll_queues + > rw_queues; > -- > 2.26.0 > This seems to be the same patch uploaded by Powen: https://patchwork.kernel.org/project/linux-scsi/patch/20230307065448.15279-4-powen.kao@mediatek.com/
> -----Original Message----- > From: Stanley Chu <chu.stanley@gmail.com> > Sent: Wednesday, April 19, 2023 7:33 PM > To: SEO HOYOUNG <hy50.seo@samsung.com> > Cc: linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org; > alim.akhtar@samsung.com; avri.altman@wdc.com; jejb@linux.ibm.com; > martin.petersen@oracle.com; beanhuo@micron.com; bvanassche@acm.org; > bhoon95.kim@samsung.com; kwmad.kim@samsung.com; sc.suh@samsung.com; > quic_nguyenb@quicinc.com; Po-Wen Kao <powen.kao@mediatek.com>; > peter.wang@mediatek.com > Subject: Re: [PATCH v1] scsi: ufs: mcq: add 1 to the max Queues value > > Hi, > > SEO HOYOUNG <hy50.seo@samsung.com> 於 2023年4月19日 週三 下午5:56寫道: > > > > If read the MAXQ field value verbatim, can use a value that is one > > less than the supported Queue. > > So read the MAXQ field value and incremented it by one > > > > below is the specification > > Maximum number of Queues (MAXQ): > > Maximum number of Queues this controller can support. > > In this version of specification, maximum value is 31. > > > > NOTE To support 1:1 topology, the Host HW controller must support HW > > resources for MAXQ number of Completion Queues too. > > Host SW may use less number of completion queues for N:1 topology..:1 > > Queue > > 0: 1 Queue > > 1: 2 Queues > > … > > 31: 32 Queues > > 32-255 : reserved > > > > Signed-off-by: SEO HOYOUNG <hy50.seo@samsung.com> > > --- > > drivers/ufs/core/ufs-mcq.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c > > index 31df052fbc41..a1ee3318c605 100644 > > --- a/drivers/ufs/core/ufs-mcq.c > > +++ b/drivers/ufs/core/ufs-mcq.c > > @@ -150,7 +150,7 @@ static int ufshcd_mcq_config_nr_queues(struct > ufs_hba *hba) > > u32 hba_maxq, rem, tot_queues; > > struct Scsi_Host *host = hba->host; > > > > - hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities); > > + hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities) + > > + 1; > > > > tot_queues = UFS_MCQ_NUM_DEV_CMD_QUEUES + read_queues + > poll_queues + > > rw_queues; > > -- > > 2.26.0 > > > > This seems to be the same patch uploaded by Powen: > https://patchwork.kernel.org/project/linux- > scsi/patch/20230307065448.15279-4-powen.kao@mediatek.com/ Hi, Thanks for checking patch. I didn't realize there was already a patch. So I have to wait for that patchset to be merged?
diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c index 31df052fbc41..a1ee3318c605 100644 --- a/drivers/ufs/core/ufs-mcq.c +++ b/drivers/ufs/core/ufs-mcq.c @@ -150,7 +150,7 @@ static int ufshcd_mcq_config_nr_queues(struct ufs_hba *hba) u32 hba_maxq, rem, tot_queues; struct Scsi_Host *host = hba->host; - hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities); + hba_maxq = FIELD_GET(MAX_QUEUE_SUP, hba->mcq_capabilities) + 1; tot_queues = UFS_MCQ_NUM_DEV_CMD_QUEUES + read_queues + poll_queues + rw_queues;
If read the MAXQ field value verbatim, can use a value that is one less than the supported Queue. So read the MAXQ field value and incremented it by one below is the specification Maximum number of Queues (MAXQ): Maximum number of Queues this controller can support. In this version of specification, maximum value is 31. NOTE To support 1:1 topology, the Host HW controller must support HW resources for MAXQ number of Completion Queues too. Host SW may use less number of completion queues for N:1 topology..:1 Queue 0: 1 Queue 1: 2 Queues … 31: 32 Queues 32-255 : reserved Signed-off-by: SEO HOYOUNG <hy50.seo@samsung.com> --- drivers/ufs/core/ufs-mcq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)