221 lines
7.1 KiB
Diff
221 lines
7.1 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Arjan van de Ven <arjan@linux.intel.com>
|
||
|
Date: Sat, 19 Mar 2016 21:32:19 -0400
|
||
|
Subject: [PATCH] intel_idle: tweak cpuidle cstates
|
||
|
|
||
|
Increase target_residency in cpuidle cstate
|
||
|
|
||
|
Tune intel_idle to be a bit less agressive;
|
||
|
Clear linux is cleaner in hygiene (wakupes) than the average linux,
|
||
|
so we can afford changing these in a way that increases
|
||
|
performance while keeping power efficiency
|
||
|
---
|
||
|
drivers/idle/intel_idle.c | 44 +++++++++++++++++++--------------------
|
||
|
1 file changed, 22 insertions(+), 22 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
|
||
|
index 347b08b56042..31772dd98192 100644
|
||
|
--- a/drivers/idle/intel_idle.c
|
||
|
+++ b/drivers/idle/intel_idle.c
|
||
|
@@ -454,7 +454,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x01",
|
||
|
.flags = MWAIT2flg(0x01),
|
||
|
.exit_latency = 10,
|
||
|
- .target_residency = 20,
|
||
|
+ .target_residency = 120,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -462,7 +462,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x10",
|
||
|
.flags = MWAIT2flg(0x10) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 33,
|
||
|
- .target_residency = 100,
|
||
|
+ .target_residency = 900,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -470,7 +470,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x20",
|
||
|
.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 133,
|
||
|
- .target_residency = 400,
|
||
|
+ .target_residency = 1000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -478,7 +478,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x32",
|
||
|
.flags = MWAIT2flg(0x32) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 166,
|
||
|
- .target_residency = 500,
|
||
|
+ .target_residency = 1500,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -486,7 +486,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x40",
|
||
|
.flags = MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 300,
|
||
|
- .target_residency = 900,
|
||
|
+ .target_residency = 2000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -494,7 +494,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x50",
|
||
|
.flags = MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 600,
|
||
|
- .target_residency = 1800,
|
||
|
+ .target_residency = 5000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -502,7 +502,7 @@ static struct cpuidle_state hsw_cstates[] = {
|
||
|
.desc = "MWAIT 0x60",
|
||
|
.flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 2600,
|
||
|
- .target_residency = 7700,
|
||
|
+ .target_residency = 9000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -522,7 +522,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x01",
|
||
|
.flags = MWAIT2flg(0x01),
|
||
|
.exit_latency = 10,
|
||
|
- .target_residency = 20,
|
||
|
+ .target_residency = 120,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -530,7 +530,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x10",
|
||
|
.flags = MWAIT2flg(0x10) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 40,
|
||
|
- .target_residency = 100,
|
||
|
+ .target_residency = 1000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -538,7 +538,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x20",
|
||
|
.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 133,
|
||
|
- .target_residency = 400,
|
||
|
+ .target_residency = 1000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -546,7 +546,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x32",
|
||
|
.flags = MWAIT2flg(0x32) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 166,
|
||
|
- .target_residency = 500,
|
||
|
+ .target_residency = 2000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -554,7 +554,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x40",
|
||
|
.flags = MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 300,
|
||
|
- .target_residency = 900,
|
||
|
+ .target_residency = 4000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -562,7 +562,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x50",
|
||
|
.flags = MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 600,
|
||
|
- .target_residency = 1800,
|
||
|
+ .target_residency = 7000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -570,7 +570,7 @@ static struct cpuidle_state bdw_cstates[] = {
|
||
|
.desc = "MWAIT 0x60",
|
||
|
.flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 2600,
|
||
|
- .target_residency = 7700,
|
||
|
+ .target_residency = 9000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -591,7 +591,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x01",
|
||
|
.flags = MWAIT2flg(0x01),
|
||
|
.exit_latency = 10,
|
||
|
- .target_residency = 20,
|
||
|
+ .target_residency = 120,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -599,7 +599,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x10",
|
||
|
.flags = MWAIT2flg(0x10) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 70,
|
||
|
- .target_residency = 100,
|
||
|
+ .target_residency = 1000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -607,7 +607,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x20",
|
||
|
.flags = MWAIT2flg(0x20) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 85,
|
||
|
- .target_residency = 200,
|
||
|
+ .target_residency = 600,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -615,7 +615,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x33",
|
||
|
.flags = MWAIT2flg(0x33) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 124,
|
||
|
- .target_residency = 800,
|
||
|
+ .target_residency = 3000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -623,7 +623,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x40",
|
||
|
.flags = MWAIT2flg(0x40) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 200,
|
||
|
- .target_residency = 800,
|
||
|
+ .target_residency = 3200,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -631,7 +631,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x50",
|
||
|
.flags = MWAIT2flg(0x50) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 480,
|
||
|
- .target_residency = 5000,
|
||
|
+ .target_residency = 9000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -639,7 +639,7 @@ static struct cpuidle_state skl_cstates[] = {
|
||
|
.desc = "MWAIT 0x60",
|
||
|
.flags = MWAIT2flg(0x60) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||
|
.exit_latency = 890,
|
||
|
- .target_residency = 5000,
|
||
|
+ .target_residency = 9000,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
@@ -660,7 +660,7 @@ static struct cpuidle_state skx_cstates[] = {
|
||
|
.desc = "MWAIT 0x01",
|
||
|
.flags = MWAIT2flg(0x01),
|
||
|
.exit_latency = 10,
|
||
|
- .target_residency = 20,
|
||
|
+ .target_residency = 300,
|
||
|
.enter = &intel_idle,
|
||
|
.enter_s2idle = intel_idle_s2idle, },
|
||
|
{
|
||
|
--
|
||
|
https://clearlinux.org
|
||
|
|