[V2] scsi: ufs: ufs-qcom: Update UFS devfreq Parameters

Message ID 20230716074907.12356-1-quic_nitirawa@quicinc.com
State New
Headers
Series [V2] scsi: ufs: ufs-qcom: Update UFS devfreq Parameters |

Commit Message

Nitin Rawat July 16, 2023, 7:49 a.m. UTC
  To support the periodic polling mode without stop caused by CPU idle
state, enable delayed timer as default instead of deferrable timer
for qualcomm platforms.
And change UFS devfreq downdifferential threshold to 65 for less
aggressive downscaling.

Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
Signed-off-by: Asutosh Das <quic_asutoshd@quicinc.com>
---

Changes in v2:
- Realigned the commit text

 drivers/ufs/host/ufs-qcom.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--
2.17.1
  

Comments

Manivannan Sadhasivam July 20, 2023, 8:26 a.m. UTC | #1
On Sun, Jul 16, 2023 at 01:19:07PM +0530, Nitin Rawat wrote:
> To support the periodic polling mode without stop caused by CPU idle
> state, enable delayed timer as default instead of deferrable timer
> for qualcomm platforms.

How about,

"Devfreq uses the default DEVFREQ_TIMER_DEFERRABLE mode which uses the deferred
timer for scheduling the devfreq load monitor function. This causes the load
monitoring to be done only with non-idle CPUs and not making use of the idle
CPUs. Hence, use the DEVFREQ_TIMER_DELAYED mode which uses the delayed timer
thereby making use of idle CPUs as well for load monitoring."

> And change UFS devfreq downdifferential threshold to 65 for less
> aggressive downscaling.
> 

This change needs to be done in a separate patch. Also please provide any
benchmark if available to justify the patch.

> Signed-off-by: Nitin Rawat <quic_nitirawa@quicinc.com>
> Signed-off-by: Asutosh Das <quic_asutoshd@quicinc.com>

Your signed-off-by should come last, as you are the one sending this patch.

- Mani

> ---
> 
> Changes in v2:
> - Realigned the commit text
> 
>  drivers/ufs/host/ufs-qcom.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
> index 82d02e7f3b4f..a15815c951ca 100644
> --- a/drivers/ufs/host/ufs-qcom.c
> +++ b/drivers/ufs/host/ufs-qcom.c
> @@ -1388,8 +1388,9 @@ static void ufs_qcom_config_scaling_param(struct ufs_hba *hba,
>  					struct devfreq_simple_ondemand_data *d)
>  {
>  	p->polling_ms = 60;
> +	p->timer = DEVFREQ_TIMER_DELAYED;
>  	d->upthreshold = 70;
> -	d->downdifferential = 5;
> +	d->downdifferential = 65;
>  }
>  #else
>  static void ufs_qcom_config_scaling_param(struct ufs_hba *hba,
> --
> 2.17.1
>
  

Patch

diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index 82d02e7f3b4f..a15815c951ca 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -1388,8 +1388,9 @@  static void ufs_qcom_config_scaling_param(struct ufs_hba *hba,
 					struct devfreq_simple_ondemand_data *d)
 {
 	p->polling_ms = 60;
+	p->timer = DEVFREQ_TIMER_DELAYED;
 	d->upthreshold = 70;
-	d->downdifferential = 5;
+	d->downdifferential = 65;
 }
 #else
 static void ufs_qcom_config_scaling_param(struct ufs_hba *hba,