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 ``original capacity`` is its maximum attainable capacity, i.e. its maximum
43 attainable performance level. This original capacity is returned by
44 the function arch_scale_cpu_capacity(). A CPU's ``capacity`` is its ``original
45 capacity`` to which some loss of available performance (e.g. time spent
48 Note that a CPU's ``capacity`` is solely intended to be used by the CFS class,
49 while ``original capacity`` is class-agnostic. The rest of this document will use
50 the term ``capacity`` interchangeably with ``original capacity`` for the sake of
59 Consider an hypothetical dual-core asymmetric CPU capacity system where
65 By the above definition of capacity:
67 - capacity(CPU0) = C
68 - capacity(CPU1) = C/2
86 CPU0 has the highest capacity in the system (C), and completes a fixed amount of
87 work W in T units of time. On the other hand, CPU1 has half the capacity of
93 Usually, CPUs of different capacity values also have different maximum
101 - capacity(CPU0) = C
102 - capacity(CPU1) = C/3
133 Capacity aware scheduling requires an expression of a task's requirements with
134 regards to CPU capacity. Each scheduler class can express this differently, and
184 CPU capacity has a similar effect on task utilization in that running an
185 identical workload on CPUs of different capacity values will yield different
190 - capacity(CPU0) = C
191 - capacity(CPU1) = C/3
214 task_util_cpu_inv(p) = duty_cycle(p) * (capacity(cpu) / max_capacity)
216 with ``max_capacity`` being the highest CPU capacity value in the
228 curr_frequency(cpu) capacity(cpu)
233 if it were running on the highest-capacity CPU in the system, running at its
248 This means that while the capacity aware scheduling criteria will be written
252 3. Capacity aware scheduling requirements
255 3.1 CPU capacity
258 Linux cannot currently figure out CPU capacity on its own, this information thus
263 CPU scaling data, which is derived from the capacity-dmips-mhz CPU binding; see
264 Documentation/devicetree/bindings/cpu/cpu-capacity.txt.
269 As stated in 2.2, capacity-aware scheduling requires a frequency-invariant task
289 level that spans all unique CPU capacity values.
294 cater to asymmetric CPU capacity systems. Do note however that said key is
297 capacity C/2 C
318 Since there *is* CPU capacity asymmetry in the system, the
320 hierarchy of CPUs 0-1 spans a single capacity value: SD_ASYM_CPUCAPACITY isn't
331 5. Capacity aware scheduling implementation
337 5.1.1 Capacity fitness
340 The main capacity scheduling criterion of CFS is::
342 task_util(p) < capacity(task_cpu(p))
344 This is commonly called the capacity fitness criterion, i.e. CFS must ensure a
356 CFS task wakeup CPU selection follows the capacity fitness criterion described
361 clamp(task_util(p), task_uclamp_min(p), task_uclamp_max(p)) < capacity(cpu)
381 capacity(CPU0) = C
382 capacity(CPU1) = C / 3
405 then it might become CPU-bound, IOW ``task_util(p) > capacity(task_cpu(p))``;
406 the CPU capacity scheduling criterion is violated, and there may not be any more
414 to a CPU with more capacity than its current one.
424 task_uclamp_min(p) <= capacity(task_cpu(cpu))
427 CPUs can satisfy this capacity criterion, then strict priority based scheduling
438 task_bandwidth(p) < capacity(task_cpu(p))
441 none of the candidate CPUs can satisfy this capacity criterion, then the