[V3] scsi: ufs: ufs-qcom: Change UFS devfreq timer to delayed

Message ID 20230720093446.30697-1-quic_nitirawa@quicinc.com
State New
Headers
Series [V3] scsi: ufs: ufs-qcom: Change UFS devfreq timer to delayed |

Commit Message

Nitin Rawat July 20, 2023, 9:34 a.m. UTC
  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.

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

changes from v2:
- Modified commit message as per mani's suggestion
- removed threshold change

Changes from v1:
- Realigned the commit text

 drivers/ufs/host/ufs-qcom.c | 1 +
 1 file changed, 1 insertion(+)

--
2.17.1
  

Comments

Martin K. Petersen July 23, 2023, 8:32 p.m. UTC | #1
Nitin,

> 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.

Applied to 6.6/scsi-staging, thanks!
  

Patch

diff --git a/drivers/ufs/host/ufs-qcom.c b/drivers/ufs/host/ufs-qcom.c
index df9161cb9825..07e5050dae77 100644
--- a/drivers/ufs/host/ufs-qcom.c
+++ b/drivers/ufs/host/ufs-qcom.c
@@ -1619,6 +1619,7 @@  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;
 }