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/cpu/cpu-capacity.txt.
268 As stated in 2.2, capacity-aware scheduling requires a frequency-invariant task
288 level that spans all unique CPU capacity values.
293 cater to asymmetric CPU capacity systems. Do note however that said key is
296 capacity C/2 C
317 Since there *is* CPU capacity asymmetry in the system, the
319 hierarchy of CPUs 0-1 spans a single capacity value: SD_ASYM_CPUCAPACITY isn't
330 5. Capacity aware scheduling implementation
336 5.1.1 Capacity fitness
339 The main capacity scheduling criterion of CFS is::
341 task_util(p) < capacity(task_cpu(p))
343 This is commonly called the capacity fitness criterion, i.e. CFS must ensure a
355 CFS task wakeup CPU selection follows the capacity fitness criterion described
360 clamp(task_util(p), task_uclamp_min(p), task_uclamp_max(p)) < capacity(cpu)
380 capacity(CPU0) = C
381 capacity(CPU1) = C / 3
404 then it might become CPU-bound, IOW ``task_util(p) > capacity(task_cpu(p))``;
405 the CPU capacity scheduling criterion is violated, and there may not be any more
413 to a CPU with more capacity than its current one.
423 task_uclamp_min(p) <= capacity(task_cpu(cpu))
426 CPUs can satisfy this capacity criterion, then strict priority based scheduling
437 task_bandwidth(p) < capacity(task_cpu(p))
440 none of the candidate CPUs can satisfy this capacity criterion, then the