| /kernel/linux/linux-6.6/Documentation/scheduler/ |
| D | sched-capacity.rst | 2 Capacity Aware Scheduling 5 1. CPU Capacity 9 ---------------- 13 different performance characteristics - on such platforms, not all CPUs can be 16 CPU capacity is a measure of the performance a CPU can reach, normalized against 17 the most performant CPU in the system. Heterogeneous systems are also called 18 asymmetric CPU capacity systems, as they contain CPUs of different capacities. 20 Disparity in maximum attainable performance (IOW in maximum CPU capacity) stems 23 - not all CPUs may have the same microarchitecture (µarch). 24 - with Dynamic Voltage and Frequency Scaling (DVFS), not all CPUs may be [all …]
|
| D | sched-energy.rst | 6 --------------- 10 Energy Model (EM) of the CPUs to select an energy efficient CPU for each task, 17 /!\ EAS does not support platforms with symmetric CPU topologies /!\ 19 EAS operates only on heterogeneous CPU topologies (such as Arm big.LITTLE) 25 please refer to its documentation (see Documentation/power/energy-model.rst). 29 ----------------------------- 32 - energy = [joule] (resource like a battery on powered devices) 33 - power = energy/time = [joule/second] = [watt] 39 -------------------- 45 ----------- [all …]
|
| /kernel/linux/linux-5.10/Documentation/scheduler/ |
| D | sched-capacity.rst | 2 Capacity Aware Scheduling 5 1. CPU Capacity 9 ---------------- 13 different performance characteristics - on such platforms, not all CPUs can be 16 CPU capacity is a measure of the performance a CPU can reach, normalized against 17 the most performant CPU in the system. Heterogeneous systems are also called 18 asymmetric CPU capacity systems, as they contain CPUs of different capacities. 20 Disparity in maximum attainable performance (IOW in maximum CPU capacity) stems 23 - not all CPUs may have the same microarchitecture (µarch). 24 - with Dynamic Voltage and Frequency Scaling (DVFS), not all CPUs may be [all …]
|
| D | sched-energy.rst | 6 --------------- 10 Energy Model (EM) of the CPUs to select an energy efficient CPU for each task, 17 /!\ EAS does not support platforms with symmetric CPU topologies /!\ 19 EAS operates only on heterogeneous CPU topologies (such as Arm big.LITTLE) 25 please refer to its documentation (see Documentation/power/energy-model.rst). 29 ----------------------------- 32 - energy = [joule] (resource like a battery on powered devices) 33 - power = energy/time = [joule/second] = [watt] 39 -------------------- 45 ----------- [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpu/ |
| D | cpu-capacity.txt | 2 CPU capacity bindings 6 1 - Introduction 15 2 - CPU capacity definition 18 CPU capacity is a number that provides the scheduler information about CPUs 19 heterogeneity. Such heterogeneity can come from micro-architectural differences 23 capture a first-order approximation of the relative performance of CPUs. 25 CPU capacities are obtained by running a suitable benchmark. This binding makes 27 final capacity should, however, be: 29 * A "single-threaded" or CPU affine benchmark 30 * Divided by the running frequency of the CPU executing the benchmark [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/ |
| D | cpu-capacity.txt | 2 ARM CPUs capacity bindings 6 1 - Introduction 15 2 - CPU capacity definition 18 CPU capacity is a number that provides the scheduler information about CPUs 19 heterogeneity. Such heterogeneity can come from micro-architectural differences 23 capture a first-order approximation of the relative performance of CPUs. 25 CPU capacities are obtained by running a suitable benchmark. This binding makes 27 final capacity should, however, be: 29 * A "single-threaded" or CPU affine benchmark 30 * Divided by the running frequency of the CPU executing the benchmark [all …]
|
| /kernel/linux/linux-6.6/arch/arm/kernel/ |
| D | topology.c | 15 #include <linux/cpu.h> 29 #include <asm/cpu.h> 34 * cpu capacity scale management 38 * cpu capacity table 39 * This per cpu data structure describes the relative capacity of each core. 40 * On a heteregenous system, cores don't have the same computation capacity 42 * can take this difference into account during load balance. A per cpu 43 * structure is preferred because each CPU updates its own cpu_capacity field 61 * is used to compute the capacity of a CPU. 66 {"arm,cortex-a15", 3891}, [all …]
|
| /kernel/linux/linux-5.10/arch/arm/kernel/ |
| D | topology.c | 15 #include <linux/cpu.h> 29 #include <asm/cpu.h> 34 * cpu capacity scale management 38 * cpu capacity table 39 * This per cpu data structure describes the relative capacity of each core. 40 * On a heteregenous system, cores don't have the same computation capacity 42 * can take this difference into account during load balance. A per cpu 43 * structure is preferred because each CPU updates its own cpu_capacity field 61 * is used to compute the capacity of a CPU. 66 {"arm,cortex-a15", 3891}, [all …]
|
| /kernel/linux/linux-6.6/Documentation/translations/zh_CN/scheduler/ |
| D | sched-capacity.rst | 1 .. SPDX-License-Identifier: GPL-2.0 2 .. include:: ../disclaimer-zh_CN.rst 4 :Original: Documentation/scheduler/sched-capacity.rst 22 -------- 27 我们引入CPU算力(capacity)的概念来测量每个CPU能达到的性能,它的值相对系统中性能最强的CPU 32 - 不是所有CPU的微架构都相同。 33 - 在动态电压频率升降(Dynamic Voltage and Frequency Scaling,DVFS)框架中,不是所有的CPU都 34 能达到一样高的操作性能值(Operating Performance Points,OPP。译注,也就是“频率-电压”对)。 42 capacity(cpu) = work_per_hz(cpu) * max_freq(cpu) 45 -------------- [all …]
|
| /kernel/linux/linux-5.10/arch/arm/boot/dts/ |
| D | exynos5420-cpus.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Samsung Exynos5420 SoC cpu device tree source 9 * boards: CPU[0123] being the A15. 11 * The Exynos5420, 5422 and 5800 actually share the same CPU configuration 14 * Exynos5420 and Exynos5800 always boot from Cortex-A15. On Exynos5422 16 * the gpg2-1 GPIO. By default all Exynos5422 based boards choose booting 17 * from the LITTLE: Cortex-A7. 22 #address-cells = <1>; 23 #size-cells = <0>; 25 cpu0: cpu@0 { [all …]
|
| D | exynos5422-cpus.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Samsung Exynos5422 SoC cpu device tree source 8 * This file provides desired ordering for Exynos5422: CPU[0123] being the A7. 10 * The Exynos5420, 5422 and 5800 actually share the same CPU configuration 13 * Exynos5420 and Exynos5800 always boot from Cortex-A15. On Exynos5422 15 * the gpg2-1 GPIO. By default all Exynos5422 based boards choose booting 16 * from the LITTLE: Cortex-A7. 21 #address-cells = <1>; 22 #size-cells = <0>; 24 cpu0: cpu@100 { [all …]
|
| /kernel/linux/linux-6.6/arch/arm/boot/dts/samsung/ |
| D | exynos5422-cpus.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Samsung Exynos5422 SoC cpu device tree source 8 * This file provides desired ordering for Exynos5422: CPU[0123] being the A7. 10 * The Exynos5420, 5422 and 5800 actually share the same CPU configuration 13 * Exynos5420 and Exynos5800 always boot from Cortex-A15. On Exynos5422 15 * the gpg2-1 GPIO. By default all Exynos5422 based boards choose booting 16 * from the LITTLE: Cortex-A7. 21 #address-cells = <1>; 22 #size-cells = <0>; 24 cpu-map { [all …]
|
| D | exynos5420-cpus.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Samsung Exynos5420 SoC cpu device tree source 9 * boards: CPU[0123] being the A15. 11 * The Exynos5420, 5422 and 5800 actually share the same CPU configuration 14 * Exynos5420 and Exynos5800 always boot from Cortex-A15. On Exynos5422 16 * the gpg2-1 GPIO. By default all Exynos5422 based boards choose booting 17 * from the LITTLE: Cortex-A7. 22 #address-cells = <1>; 23 #size-cells = <0>; 25 cpu-map { [all …]
|
| /kernel/linux/linux-5.10/kernel/sched/ |
| D | core_ctl.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. 9 #include <linux/cpu.h> 58 unsigned int cpu; member 91 return -EINVAL; in store_min_cpus() 93 state->min_cpus = min(val, state->max_cpus); in store_min_cpus() 101 return sysfs_emit(buf, "%u\n", state->min_cpus); in show_min_cpus() 110 return -EINVAL; in store_max_cpus() 112 val = min(val, state->num_cpus); in store_max_cpus() 113 state->max_cpus = val; in store_max_cpus() [all …]
|
| /kernel/linux/linux-6.6/kernel/sched/ |
| D | core_ctl.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved. 9 #include <linux/cpu.h> 58 unsigned int cpu; member 91 return -EINVAL; in store_min_cpus() 93 state->min_cpus = min(val, state->max_cpus); in store_min_cpus() 101 return sysfs_emit(buf, "%u\n", state->min_cpus); in show_min_cpus() 110 return -EINVAL; in store_max_cpus() 112 val = min(val, state->num_cpus); in store_max_cpus() 113 state->max_cpus = val; in store_max_cpus() [all …]
|
| D | sched_avg.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (c) 2012, 2015-2021, The Linux Foundation. All rights reserved. 43 int cpu; in sched_get_nr_running_avg() local 45 u64 period = curr_time - last_get_time; in sched_get_nr_running_avg() 52 for_each_possible_cpu(cpu) { in sched_get_nr_running_avg() 56 spin_lock_irqsave(&per_cpu(nr_lock, cpu), flags); in sched_get_nr_running_avg() 58 diff = curr_time - per_cpu(last_time, cpu); in sched_get_nr_running_avg() 61 tmp_nr = per_cpu(nr_prod_sum, cpu); in sched_get_nr_running_avg() 62 tmp_nr += per_cpu(nr, cpu) * diff; in sched_get_nr_running_avg() 65 tmp_misfit = per_cpu(nr_big_prod_sum, cpu); in sched_get_nr_running_avg() [all …]
|
| /kernel/linux/linux-6.6/drivers/base/ |
| D | arch_topology.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Arch specific cpu topology information 11 #include <linux/cpu.h> 63 int cpu; in topology_set_scale_freq_source() local 74 for_each_cpu(cpu, cpus) { in topology_set_scale_freq_source() 75 sfd = rcu_dereference(*per_cpu_ptr(&sft_data, cpu)); in topology_set_scale_freq_source() 78 if (!sfd || sfd->source != SCALE_FREQ_SOURCE_ARCH) { in topology_set_scale_freq_source() 79 rcu_assign_pointer(per_cpu(sft_data, cpu), data); in topology_set_scale_freq_source() 80 cpumask_set_cpu(cpu, &scale_freq_counters_mask); in topology_set_scale_freq_source() 94 int cpu; in topology_clear_scale_freq_source() local [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/boot/dts/amlogic/ |
| D | meson-g12b.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 #include "meson-g12.dtsi" 13 #address-cells = <0x2>; 14 #size-cells = <0x0>; 16 cpu-map { 19 cpu = <&cpu0>; 23 cpu = <&cpu1>; 29 cpu = <&cpu100>; 33 cpu = <&cpu101>; 37 cpu = <&cpu102>; [all …]
|
| /kernel/linux/linux-5.10/drivers/base/ |
| D | arch_topology.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Arch specific cpu topology information 10 #include <linux/cpu.h> 61 void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity) in topology_set_cpu_scale() argument 63 per_cpu(cpu_scale, cpu) = capacity; in topology_set_cpu_scale() 71 int cpu; in topology_set_thermal_pressure() local 73 for_each_cpu(cpu, cpus) in topology_set_thermal_pressure() 74 WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure); in topology_set_thermal_pressure() 81 struct cpu *cpu = container_of(dev, struct cpu, dev); in cpu_capacity_show() local 83 return sysfs_emit(buf, "%lu\n", topology_get_cpu_scale(cpu->dev.id)); in cpu_capacity_show() [all …]
|
| /kernel/linux/linux-6.6/arch/arm64/boot/dts/amlogic/ |
| D | meson-gxm.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 #include "meson-gxl.dtsi" 10 compatible = "amlogic,meson-gxm"; 13 cpu-map { 16 cpu = <&cpu0>; 19 cpu = <&cpu1>; 22 cpu = <&cpu2>; 25 cpu = <&cpu3>; 31 cpu = <&cpu4>; 34 cpu = <&cpu5>; [all …]
|
| D | meson-g12b.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 7 #include "meson-g12.dtsi" 13 #address-cells = <0x2>; 14 #size-cells = <0x0>; 16 cpu-map { 19 cpu = <&cpu0>; 23 cpu = <&cpu1>; 29 cpu = <&cpu100>; 33 cpu = <&cpu101>; 37 cpu = <&cpu102>; [all …]
|
| /kernel/linux/linux-6.6/arch/arm64/boot/dts/apple/ |
| D | t6002.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ OR MIT 10 #include <dt-bindings/gpio/gpio.h> 11 #include <dt-bindings/interrupt-controller/apple-aic.h> 12 #include <dt-bindings/interrupt-controller/irq.h> 13 #include <dt-bindings/pinctrl/apple.h> 15 #include "multi-die-cpp.h" 17 #include "t600x-common.dtsi" 20 compatible = "apple,t6002", "apple,arm-platform"; 22 #address-cells = <2>; 23 #size-cells = <2>; [all …]
|
| D | t600x-common.dtsi | 1 // SPDX-License-Identifier: GPL-2.0+ OR MIT 11 #address-cells = <2>; 12 #size-cells = <2>; 15 #address-cells = <2>; 16 #size-cells = <0>; 18 cpu-map { 21 cpu = <&cpu_e00>; 24 cpu = <&cpu_e01>; 30 cpu = <&cpu_p00>; 33 cpu = <&cpu_p01>; [all …]
|
| /kernel/linux/linux-5.10/arch/arm64/boot/dts/qcom/ |
| D | sdm660.dtsi | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <dt-bindings/interrupt-controller/arm-gic.h> 8 #include <dt-bindings/clock/qcom,gcc-sdm660.h> 11 interrupt-parent = <&intc>; 13 #address-cells = <2>; 14 #size-cells = <2>; 20 compatible = "fixed-clock"; 21 #clock-cells = <0>; 22 clock-frequency = <19200000>; 23 clock-output-names = "xo_board"; [all …]
|
| /kernel/linux/linux-6.6/include/linux/sched/ |
| D | sd_flags.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * sched-domains (multiprocessor balancing) flag declarations. 29 * certain level (e.g. domain starts spanning CPUs outside of the base CPU's 78 * Consider waking task on waking CPU. 85 * Domain members have different CPU capacities 89 * NEEDS_GROUPS: Per-CPU capacity is asymmetric between groups. 94 * Domain members have different CPU capacities spanning all unique CPU 95 * capacity values. 98 * all available CPU capacities are visible 99 * NEEDS_GROUPS: Per-CPU capacity is asymmetric between groups. [all …]
|