diff options
author | Nicolas Chauvet <kwizart@gmail.com> | 2015-02-15 17:23:25 +0100 |
---|---|---|
committer | Nicolas Chauvet <kwizart@gmail.com> | 2015-02-15 17:23:25 +0100 |
commit | 7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b (patch) | |
tree | 52ec6b63ffb59d9f771c96882bc523035e7e477f | |
parent | 8ad98669b576d79ad969aa7ed869d9651c2be335 (diff) | |
download | kernel-7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b.tar.gz kernel-7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b.tar.xz kernel-7f0d5bcf3622252ecaafcb429ab17b64f8c04c4b.zip |
Add arm-armada-xp-update_cpuidle
-rw-r--r-- | arm-armada-xp-update_cpuidle.patch | 67 |
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 |