summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Chauvet <kwizart@gmail.com>2015-02-15 17:23:25 +0100
committerNicolas Chauvet <kwizart@gmail.com>2015-02-15 17:23:25 +0100
commit7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b (patch)
tree52ec6b63ffb59d9f771c96882bc523035e7e477f
parent8ad98669b576d79ad969aa7ed869d9651c2be335 (diff)
downloadkernel-7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b.tar.gz
kernel-7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b.tar.xz
kernel-7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b.zip
Add arm-armada-xp-update_cpuidle
-rw-r--r--arm-armada-xp-update_cpuidle.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/arm-armada-xp-update_cpuidle.patch b/arm-armada-xp-update_cpuidle.patch
new file mode 100644
index 00000000..04783656
--- /dev/null
+++ b/arm-armada-xp-update_cpuidle.patch
@@ -0,0 +1,67 @@
+Date: Fri, 13 Feb 2015 15:55:03 +0100 (CET)
+From: "s. rannou" <mxs@sbrk.org>
+To: Jason Cooper <jason@lakedaemon.net>
+Subject: [PATCH] cpuidle: mvebu: update cpuidle thresholds for Armada XP SOCs
+
+Originally, the thresholds used in the cpuidle driver for Armada SOCs
+were temporarily chosen, leaving room for improvements.
+
+This commit updates the thresholds for the Armada XP SOCs with values
+that positively impact performances:
+
+ without patch with patch vendor kernel
+ - iperf localhost (gbit/sec) ~3.7 ~6.4 ~5.4
+ - ioping tmpfs (iops) ~163k ~206k ~179k
+ - ioping tmpfs (mib/s) ~636 ~805 ~699
+
+The idle power consumption is negatively impacted (proportionally less
+than the performance gain), and we are still performing better than
+the vendor kernel here:
+
+ without patch with patch vendor kernel
+ - power consumption idle (W) ~2.4 ~3.2 ~4.4
+ - power consumption busy (W) ~8.6 ~8.3 ~8.6
+
+There is still room for improvement regarding the value of these
+thresholds, they were chosen to mimic the vendor kernel.
+
+This patch only impacts Armada XP SOCs and was tested on Online Labs
+C1 boards. A similar approach can be taken to improve the performances
+of the Armada 370 and Armada 38x SOCs.
+
+Thanks a lot to Thomas Petazzoni, Gregory Clement and Willy Tarreau
+for the discussions and tips around this topic.
+
+Signed-off-by: Sebastien Rannou <mxs@sbrk.org>
+---
+ drivers/cpuidle/cpuidle-mvebu-v7.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/cpuidle/cpuidle-mvebu-v7.c b/drivers/cpuidle/cpuidle-mvebu-v7.c
+index 38e6861..3716a1f 100644
+--- a/drivers/cpuidle/cpuidle-mvebu-v7.c
++++ b/drivers/cpuidle/cpuidle-mvebu-v7.c
+@@ -50,17 +50,17 @@ static struct cpuidle_driver armadaxp_idle_driver = {
+ .states[0] = ARM_CPUIDLE_WFI_STATE,
+ .states[1] = {
+ .enter = mvebu_v7_enter_idle,
+- .exit_latency = 10,
++ .exit_latency = 100,
+ .power_usage = 50,
+- .target_residency = 100,
++ .target_residency = 1000,
+ .name = "MV CPU IDLE",
+ .desc = "CPU power down",
+ },
+ .states[2] = {
+ .enter = mvebu_v7_enter_idle,
+- .exit_latency = 100,
++ .exit_latency = 1000,
+ .power_usage = 5,
+- .target_residency = 1000,
++ .target_residency = 10000,
+ .flags = MVEBU_V7_FLAG_DEEP_IDLE,
+ .name = "MV CPU DEEP IDLE",
+ .desc = "CPU and L2 Fabric power down",
+--
+2.1.4