Samsung developers last week provided patches for a new cpufreq governor dubbed "LAB", or the "Legacy Application Boost", for the Linux kernel.
The Legacy Application Boost cpufreq governor uses historical cpuidle usage information for determining the number of currently active processor cores and uses that with the number of idle CPU cores for determining the next frequency dynamically.
Jonghwa Lee of Samsung in the mailing list patch
, provides this example for LAB, "For instance, we can assume that it is working on quard core processor. When all 4 cores are busy then this governor throttles next frequency in maximum. For 3 cores, throttling will be loosen. The less core are busy, the more high frequency will be set. So, when only one core is in busy, then it releases maximum frequency that system allows. The name of 'Legacy Application Boost' came from the such above aspect which system has the highest performance for single threaded process."
More information on the Legacy Application Boost governor can be found within this mailing list message
for a detailed summary. The described purpose of this new cpufreq governor developed by Samsung engineers comes down to:
One of the problem of ondemand is that it considers the most busy cpu only while doesn't care how many cpu is in busy state at the moment. This may results in unnecessary power consumption, and it'll be critical for the system having limited power source.
To get the best energy efficiency, LAB governor considers not only idle time but also the number of idle cpus. It primarily focuses on supplying adequate performance to users within the limited resource. It checks the number of idle cpus then controls the maximum frequency dynamically. And it also applies different frequency increasing level depends on that information. In simple terms the less the number of busy cpus, the better performance will be given. In addition, stable system's power consumption in the busy state can be achieved also with using LAB governor. This will help to manage and estimate power consumption in certain system.
This new Linux kernel cpufreq governor amounts to just less than 600 lines of new code. It's possible this new governor could be merged into the Linux 3.10 kernel. However, right now there is some objection
to introducing any non-essential excess governors into the mainline Linux kernel.