[v1] cpuidle: driver: Update microsecond values of state parameters as needed

Message ID 2676828.mvXUDI8C0e@kreacher
State New
Headers
Series [v1] cpuidle: driver: Update microsecond values of state parameters as needed |

Commit Message

Rafael J. Wysocki Feb. 7, 2023, 7:59 p.m. UTC
  From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

If the cpuidle driver provides the target residency and exit latency in
nanoseconds, the corresponding values in microseconds need to be set to
reflect the provided numbers in order for the sysfs interface to show
them correctly, so make __cpuidle_driver_init() do that.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/cpuidle/driver.c |    4 ++++
 1 file changed, 4 insertions(+)
  

Comments

Artem Bityutskiy Feb. 9, 2023, 6:16 p.m. UTC | #1
On Tue, 2023-02-07 at 20:59 +0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> If the cpuidle driver provides the target residency and exit latency in
> nanoseconds, the corresponding values in microseconds need to be set to
> reflect the provided numbers in order for the sysfs interface to show
> them correctly, so make __cpuidle_driver_init() do that.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Tested-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Thanks!
  

Patch

Index: linux-pm/drivers/cpuidle/driver.c
===================================================================
--- linux-pm.orig/drivers/cpuidle/driver.c
+++ linux-pm/drivers/cpuidle/driver.c
@@ -183,11 +183,15 @@  static void __cpuidle_driver_init(struct
 			s->target_residency_ns = s->target_residency * NSEC_PER_USEC;
 		else if (s->target_residency_ns < 0)
 			s->target_residency_ns = 0;
+		else
+			s->target_residency = s->target_residency_ns / NSEC_PER_USEC;
 
 		if (s->exit_latency > 0)
 			s->exit_latency_ns = s->exit_latency * NSEC_PER_USEC;
 		else if (s->exit_latency_ns < 0)
 			s->exit_latency_ns =  0;
+		else
+			s->exit_latency = s->exit_latency_ns / NSEC_PER_USEC;
 	}
 }