Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1261932 > unrolled thread

[PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to 20us

Started byriel@redhat.com
First post2015-11-03 23:40 +0100
Last post2015-11-04 17:10 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to 20us riel@redhat.com - 2015-11-03 23:40 +0100
    Re: [PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to  20us Arjan van de Ven <arjan@linux.intel.com> - 2015-11-04 17:10 +0100

#1261932 — [PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to 20us

Fromriel@redhat.com
Date2015-11-03 23:40 +0100
Subject[PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to 20us
Message-ID<qqSpc-nO-3@gated-at.bofh.it>
From: Rik van Riel <riel@redhat.com>

The cpuidle menu governor has a forced cut-off for polling at 5us,
in order to deal with firmware that gives the OS bad information
on cpuidle states, leading to the system spending way too much time
in polling.

However, at least one x86 CPU family (Atom) has chips that have
a 20us break-even point for C1. Forcing the polling cut-off to
less than that wastes performance and power.

Increase the polling cut-off to 20us.

Systems with a lower C1 latency will be found in the states table by
the menu governor, which will pick those states as appropriate.

Signed-off-by: Rik van Riel <riel@redhat.com>
---
 drivers/cpuidle/governors/menu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
index 22e4463d1787..ecc242a586c9 100644
--- a/drivers/cpuidle/governors/menu.c
+++ b/drivers/cpuidle/governors/menu.c
@@ -330,7 +330,7 @@ static int menu_select(struct cpuidle_driver *drv, struct cpuidle_device *dev)
 	 * We want to default to C1 (hlt), not to busy polling
 	 * unless the timer is happening really really soon.
 	 */
-	if (data->next_timer_us > 5 &&
+	if (data->next_timer_us > 20 &&
 	    !drv->states[CPUIDLE_DRIVER_STATE_START].disabled &&
 		dev->states_usage[CPUIDLE_DRIVER_STATE_START].disable == 0)
 		data->last_state_idx = CPUIDLE_DRIVER_STATE_START;
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1262410 — Re: [PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to 20us

FromArjan van de Ven <arjan@linux.intel.com>
Date2015-11-04 17:10 +0100
SubjectRe: [PATCH 1/3] cpuidle,x86: increase forced cut-off for polling to 20us
Message-ID<qr8Nl-2Ge-31@gated-at.bofh.it>
In reply to#1261932
Acked-by: Arjan van de Ven <arjan@linux.intel.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web