Lines Matching full:capacity
2 Capacity Aware Scheduling
5 1. CPU Capacity
16 CPU capacity is a measure of the performance a CPU can reach, normalized against
18 asymmetric CPU capacity systems, as they contain CPUs of different capacities.
20 Disparity in maximum attainable performance (IOW in maximum CPU capacity) stems
36 capacity(cpu) = work_per_hz(cpu) * max_freq(cpu)
41 Two different capacity values are used within the scheduler. A CPU's
42 ``capacity_orig`` is its maximum attainable capacity, i.e. its maximum
43 attainable performance level. A CPU's ``capacity`` is its ``capacity_orig`` to
47 Note that a CPU's ``capacity`` is solely intended to be used by the CFS class,
49 the term ``capacity`` interchangeably with ``capacity_orig`` for the sake of
58 Consider an hypothetical dual-core asymmetric CPU capacity system where
64 By the above definition of capacity:
66 - capacity(CPU0) = C
67 - capacity(CPU1) = C/2
85 CPU0 has the highest capacity in the system (C), and completes a fixed amount of
86 work W in T units of time. On the other hand, CPU1 has half the capacity of
92 Usually, CPUs of different capacity values also have different maximum
100 - capacity(CPU0) = C
101 - capacity(CPU1) = C/3
132 Capacity aware scheduling requires an expression of a task's requirements with
133 regards to CPU capacity. Each scheduler class can express this differently, and
183 CPU capacity has a similar effect on task utilization in that running an
184 identical workload on CPUs of different capacity values will yield different
189 - capacity(CPU0) = C
190 - capacity(CPU1) = C/3
213 task_util_cpu_inv(p) = duty_cycle(p) * (capacity(cpu) / max_capacity)
215 with ``max_capacity`` being the highest CPU capacity value in the
227 curr_frequency(cpu) capacity(cpu)
232 if it were running on the highest-capacity CPU in the system, running at its
247 This means that while the capacity aware scheduling criteria will be written
251 3. Capacity aware scheduling requirements
254 3.1 CPU capacity
257 Linux cannot currently figure out CPU capacity on its own, this information thus
262 CPU scaling data, which is derived from the capacity-dmips-mhz CPU binding; see
263 Documentation/devicetree/bindings/arm/cpu-capacity.txt.
268 As stated in 2.2, capacity-aware scheduling requires a frequency-invariant task
288 spans all unique CPU capacity values.
291 cater to asymmetric CPU capacity systems. Do note however that said key is
294 capacity C/2 C
315 Since there *is* CPU capacity asymmetry in the system, the
317 hierarchy of CPUs 0-1 spans a single capacity value: SD_ASYM_CPUCAPACITY isn't
328 5. Capacity aware scheduling implementation
334 5.1.1 Capacity fitness
337 The main capacity scheduling criterion of CFS is::
339 task_util(p) < capacity(task_cpu(p))
341 This is commonly called the capacity fitness criterion, i.e. CFS must ensure a
353 CFS task wakeup CPU selection follows the capacity fitness criterion described
358 clamp(task_util(p), task_uclamp_min(p), task_uclamp_max(p)) < capacity(cpu)
378 capacity(CPU0) = C
379 capacity(CPU1) = C / 3
402 then it might become CPU-bound, IOW ``task_util(p) > capacity(task_cpu(p))``;
403 the CPU capacity scheduling criterion is violated, and there may not be any more
411 to a CPU with more capacity than its current one.
421 task_uclamp_min(p) <= capacity(task_cpu(cpu))
424 CPUs can satisfy this capacity criterion, then strict priority based scheduling
435 task_bandwidth(p) < capacity(task_cpu(p))
438 none of the candidate CPUs can satisfy this capacity criterion, then the