On 05/27/2014 06:02 PM, Nicolas Pitre wrote:
On Tue, 27 May 2014, Daniel Lezcano wrote:
On 05/27/2014 12:19 AM, Nicolas Pitre wrote:
"Power" is a very bad term in the scheduler context. There are so many meanings that can be attached to it. And with the upcoming "power aware" scheduler work, confusion is sure to happen.
The definition of "power" is typically the rate at which work is performed, energy is converted or electric energy is transferred. The notion of "compute capacity" is rather at odds with "power" to the point many comments in the code have to make it explicit that "capacity" is the actual intended meaning.
So let's make it clear what we man by using "capacity" in place of "power" directly in the code. That will make the introduction of actual "power consumption" concepts much clearer later on.
This is based on the latest tip tree to apply correctly on top of existing scheduler changes already queued there.
Changes from v1:
capa_factor and SCHED_CAPA_* changed to be spelled "capacity" in full to save peterz some Chupacabra nightmares
some minor corrections in commit logs
rebased on latest tip tree
arch/arm/kernel/topology.c | 54 +++---- include/linux/sched.h | 8 +- kernel/sched/core.c | 87 ++++++----- kernel/sched/fair.c | 323 ++++++++++++++++++++------------------- kernel/sched/sched.h | 18 +-- 5 files changed, 246 insertions(+), 244 deletions(-)
Hi Nico,
it is a good initiative to replace the 'power' word by another to prevent confusion for future code. Personally I have a preference to 'strength' instead of 'capacity', in case that matter.
Proper usage does matter:
Strength could mean many things. Among them:
Physical ability
* Physical strength, as in people or animals
As an abstract or psychological trait
* Virtue and moral uprightness * Courage or fortitude in the face of moral or social pressure * Persuasiveness of an argument * The exercise of willpower
Physics
* Strength of materials, ability to withstand an applied stress without failure + Compressive strength, capacity to withstand axially directed pushing forces + Tensile strength, maximum stress while being stretched or pulled before necking + Shear strength, the ability to withstand shearing * Strength (explosive), the ability of an explosive to move surrounding material * Field strength, the magnitude of a field's vector * Signal strength, the magnitude of an electric field at a reference point
I have difficulty referring to "CPU strength" without still be confused about what exactly this would mean. None of the above definitions would provide a sufficiently close analogy to be applied without ambiguity.
Ok, fair enough.
On the other hand, the definition for capacity is much narrower:
a. The ability to receive, hold, or absorb. b. Abbr. c. A measure of this ability; volume.
The maximum amount that can be contained: a trunk filled to capacity.
a. Ability to perform or produce; capability. b. The maximum or optimum amount that can be produced: factories operating below capacity.
Etc.
Here the analogy with "CPU capacity" or "compute capacity" is clear and natural for what we are applying this term to.
Nicolas