diff mbox series

cpuidle: poll_state: Fix default time limit.

Message ID 1548865702-3524-1-git-send-email-dsmythies@telus.net (mailing list archive)
State Mainlined
Delegated to: Rafael Wysocki
Headers show
Series cpuidle: poll_state: Fix default time limit. | expand

Commit Message

Doug Smythies Jan. 30, 2019, 4:28 p.m. UTC
The default time is declared in units of microsecnds,
but is used as nano seconds, resulting in significant
accounting errors for idle state 0 time when all idle
states deeper than 0 are disabled.

Under these unusual conditions, we don't really care
about the poll time limit anyhow.

Signed-off-by: Doug Smythies <dsmythies@telus.net>
---
 drivers/cpuidle/poll_state.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Rafael J. Wysocki Jan. 30, 2019, 9:59 p.m. UTC | #1
On Wed, Jan 30, 2019 at 5:29 PM Doug Smythies <doug.smythies@gmail.com> wrote:
>
> The default time is declared in units of microsecnds,
> but is used as nano seconds, resulting in significant
> accounting errors for idle state 0 time when all idle
> states deeper than 0 are disabled.
>
> Under these unusual conditions, we don't really care
> about the poll time limit anyhow.
>
> Signed-off-by: Doug Smythies <dsmythies@telus.net>
> ---
>  drivers/cpuidle/poll_state.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpuidle/poll_state.c b/drivers/cpuidle/poll_state.c
> index b17d153..23a1b27 100644
> --- a/drivers/cpuidle/poll_state.c
> +++ b/drivers/cpuidle/poll_state.c
> @@ -21,7 +21,7 @@ static int __cpuidle poll_idle(struct cpuidle_device *dev,
>         local_irq_enable();
>         if (!current_set_polling_and_test()) {
>                 unsigned int loop_count = 0;
> -               u64 limit = TICK_USEC;
> +               u64 limit = TICK_NSEC;

Good catch!

>                 int i;
>
>                 for (i = 1; i < drv->state_count; i++) {
> --

Applied, thanks!
diff mbox series

Patch

diff --git a/drivers/cpuidle/poll_state.c b/drivers/cpuidle/poll_state.c
index b17d153..23a1b27 100644
--- a/drivers/cpuidle/poll_state.c
+++ b/drivers/cpuidle/poll_state.c
@@ -21,7 +21,7 @@  static int __cpuidle poll_idle(struct cpuidle_device *dev,
 	local_irq_enable();
 	if (!current_set_polling_and_test()) {
 		unsigned int loop_count = 0;
-		u64 limit = TICK_USEC;
+		u64 limit = TICK_NSEC;
 		int i;
 
 		for (i = 1; i < drv->state_count; i++) {