|From:||Lukasz Majewski <email@example.com>|
|To:||Viresh Kumar <firstname.lastname@example.org>, "Rafael J. Wysocki" <email@example.com>|
|Subject:||[RFC v3 0/5] cpufreq:LAB: Support for LAB governor.|
|Date:||Tue, 04 Mar 2014 11:27:27 +0100|
|Cc:||"firstname.lastname@example.org" <email@example.com>, Linux PM list <firstname.lastname@example.org>, Jonghwa Lee <email@example.com>, Lukasz Majewski <firstname.lastname@example.org>, Lukasz Majewski <email@example.com>, linux-kernel <firstname.lastname@example.org>, Bartlomiej Zolnierkiewicz <email@example.com>, Myungjoo Ham <firstname.lastname@example.org>, Tomasz Figa <email@example.com>, Thomas Abraham <firstname.lastname@example.org>, email@example.com, "firstname.lastname@example.org" <email@example.com>, firstname.lastname@example.org|
Despite this patch set is working and applicable on top of 3.14-rc5, please regard it solely as a pure RFC. This patch provides support for LAB governor build on top of ondemand. Previous version of LAB can be found here: http://thread.gmane.org/gmane.linux.kernel/1484746/match=... LAB short reminder: LAB uses information about how many cores are in "idle" state (the core idleness is represented as the value between 0 and 100) and the overall load of the system (from 0 to 100) to decide about frequency to be set. It is extremely useful with SoCs like Exynos4412, which can set only one frequency for all cores. Important design decisions: - Reuse well established ondemand governor's internal code. To do this I had to expose some previously static internal ondemand code. This allowed smaller LAB code when compared to previous version. - LAB works on top of ondemand, which means that one via device tree attributes can specify if and when e.g. BOOST shall be enabled or if any particular frequency shall be imposed. For situation NOT important from the power consumption reduction viewpoint the ondemand is used to set proper frequency. - It is only possible to either compile in or not the LAB into the kernel. There is no "M" option for Kconfig. It is done on purpose, since ondemand itself can be also compiled as a module and then it would be possible to remove ondemand when LAB is working on top of it. - The LAB operation is specified (and thereof extendable) via device tree lab-ctrl-freq attribute defined at /cpus/cpu0. Problems: - How the governor will work for big.LITTLE systems (especially Global Task Scheduling). - Will there be agreement to expose internal ondemand code to be reused for more specialized governors. Test HW: Exynos4412 - Trats2 board. Above patches were posted on top of Linux 3.14-rc5 (SHA1: 3f9590c281c66162bf8ae9b7b2d987f0a89043c6) Lukasz Majewski (5): cpufreq:LAB:ondemand Adjust ondemand to be able to reuse its methods cpufreq:LAB:cpufreq_governor Adjust cpufreq_governor.[h|c] to support LAB cpufreq:LAB:lab Add LAB governor code cpufreq:LAB:Kconfig Add LAB definitions to Kconfig cpufreq:LAB:dts:trats2: Add DTS nodes for LAB governor arch/arm/boot/dts/exynos4412-trats2.dts | 29 ++ drivers/cpufreq/Kconfig | 28 ++ drivers/cpufreq/Makefile | 1 + drivers/cpufreq/cpufreq_governor.c | 7 + drivers/cpufreq/cpufreq_governor.h | 12 + drivers/cpufreq/cpufreq_lab.c | 457 +++++++++++++++++++++++++++++++ drivers/cpufreq/cpufreq_ondemand.c | 24 +- 7 files changed, 550 insertions(+), 8 deletions(-) create mode 100644 drivers/cpufreq/cpufreq_lab.c -- 220.127.116.11 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to email@example.com More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Copyright © 2014, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds