| /kernel/linux/linux-5.10/Documentation/admin-guide/pm/ |
| D | cpuidle.rst | 8 CPU Idle Time Management 21 memory or executed. Those states are the *idle* states of the processor. 23 Since part of the processor hardware is not used in idle states, entering them 27 CPU idle time management is an energy-efficiency feature concerned about using 28 the idle states of processors for this purpose. 33 CPU idle time management operates on CPUs as seen by the *CPU scheduler* (that 44 enter an idle state, that applies to the processor as a whole. 52 enter an idle state, that applies to the core that asked for it in the first 56 except for one have been put into idle states at the "core level" and the 57 remaining core asks the processor to enter an idle state, that may trigger it [all …]
|
| D | intel_idle.rst | 5 ``intel_idle`` CPU Idle Time Management Driver 17 :doc:`CPU idle time management subsystem <cpuidle>` in the Linux kernel 18 (``CPUIdle``). It is the default CPU idle time management driver for the 27 logical CPU executing it is idle and so it may be possible to put some of the 42 .. _intel-idle-enumeration-of-states: 44 Enumeration of Idle States 50 as C-states (in the ACPI terminology) or idle states. The list of meaningful 51 ``MWAIT`` hint values and idle states (i.e. low-power configurations of the 55 In order to create a list of available idle states required by the ``CPUIdle`` 56 subsystem (see :ref:`idle-states-representation` in :doc:`cpuidle`), [all …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/pm/ |
| D | cpuidle.rst | 8 CPU Idle Time Management 21 memory or executed. Those states are the *idle* states of the processor. 23 Since part of the processor hardware is not used in idle states, entering them 27 CPU idle time management is an energy-efficiency feature concerned about using 28 the idle states of processors for this purpose. 33 CPU idle time management operates on CPUs as seen by the *CPU scheduler* (that 44 enter an idle state, that applies to the processor as a whole. 52 enter an idle state, that applies to the core that asked for it in the first 56 except for one have been put into idle states at the "core level" and the 57 remaining core asks the processor to enter an idle state, that may trigger it [all …]
|
| D | intel_idle.rst | 5 ``intel_idle`` CPU Idle Time Management Driver 17 :doc:`CPU idle time management subsystem <cpuidle>` in the Linux kernel 18 (``CPUIdle``). It is the default CPU idle time management driver for the 27 logical CPU executing it is idle and so it may be possible to put some of the 42 .. _intel-idle-enumeration-of-states: 44 Enumeration of Idle States 50 as C-states (in the ACPI terminology) or idle states. The list of meaningful 51 ``MWAIT`` hint values and idle states (i.e. low-power configurations of the 55 In order to create a list of available idle states required by the ``CPUIdle`` 56 subsystem (see :ref:`idle-states-representation` in [all …]
|
| /kernel/linux/linux-6.6/drivers/powercap/ |
| D | idle_inject.c | 7 * The idle injection framework provides a way to force CPUs to enter idle 13 * All of the kthreads used for idle injection are created at init time. 15 * Next, the users of the idle injection framework provide a cpumask via 19 * The idle + run duration is specified via separate helpers and that allows 20 * idle injection to be started. 22 * The idle injection kthreads will call play_idle_precise() with the idle 25 * After all of them have been woken up, a timer is set to start the next idle 28 * The timer interrupt handler will wake up the idle injection kthreads for 31 * Idle injection is stopped synchronously and no leftover idle injection 35 * synchronization to prevent race conditions like starting idle injection [all …]
|
| /kernel/linux/linux-5.10/drivers/powercap/ |
| D | idle_inject.c | 7 * The idle injection framework provides a way to force CPUs to enter idle 13 * All of the kthreads used for idle injection are created at init time. 15 * Next, the users of the the idle injection framework provide a cpumask via 19 * The idle + run duration is specified via separate helpers and that allows 20 * idle injection to be started. 22 * The idle injection kthreads will call play_idle_precise() with the idle 25 * After all of them have been woken up, a timer is set to start the next idle 28 * The timer interrupt handler will wake up the idle injection kthreads for 31 * Idle injection is stopped synchronously and no leftover idle injection 35 * synchronization to prevent race conditions like starting idle injection [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/powerpc/opal/ |
| D | power-mgt.txt | 5 idle states. The description of these idle states is exposed via the 10 Typically each idle state has the following associated properties: 12 - name: The name of the idle state as defined by the firmware. 14 - flags: indicating some aspects of this idle states such as the 16 idle states and so on. The flag bits are as follows: 19 CPU from idle to running. 22 this idle state in order to accrue power-savings 27 The following properties provide details about the idle states. These 29 provides the value of that property for the idle state associated with 32 If idle-states are defined, then the properties [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/powerpc/opal/ |
| D | power-mgt.txt | 5 idle states. The description of these idle states is exposed via the 10 Typically each idle state has the following associated properties: 12 - name: The name of the idle state as defined by the firmware. 14 - flags: indicating some aspects of this idle states such as the 16 idle states and so on. The flag bits are as follows: 19 CPU from idle to running. 22 this idle state in order to accrue power-savings 27 The following properties provide details about the idle states. These 29 provides the value of that property for the idle state associated with 32 If idle-states are defined, then the properties [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/memory-controllers/ |
| D | rockchip,rk3399-dmc.yaml | 60 Configure the PD_IDLE value. Defines the power-down idle period in which 61 memories are placed into power-down mode if bus is idle for PD_IDLE DFI 63 See also rockchip,pd-idle-ns. 69 Configure the SR_IDLE value. Defines the self-refresh idle period in 70 which memories are placed into self-refresh mode if bus is idle for 72 See also rockchip,sr-idle-ns. 79 Defines the memory self-refresh and controller clock gating idle period. 81 arg gating started if bus is idle for sr_mc_gate_idle*1024 DFI clock 83 See also rockchip,sr-mc-gate-idle-ns. 89 Defines the self-refresh power down idle period in which memories are [all …]
|
| /kernel/linux/linux-6.6/drivers/cpuidle/ |
| D | Kconfig.arm | 3 # ARM CPU Idle drivers 6 bool "Generic ARM CPU idle Driver" 12 It provides a generic idle driver whose idle states are configured 14 initialized by calling the CPU operations init idle hook 18 bool "PSCI CPU idle Driver" 24 It provides an idle driver that is capable of detecting and 25 managing idle states through the PSCI firmware interface. 28 - If the idle states are described with the non-hierarchical layout, 29 all idle states are still available. 31 - If the idle states are described with the hierarchical layout, [all …]
|
| /kernel/linux/linux-5.10/arch/s390/kernel/ |
| D | idle.c | 3 * Idle functions for s390. 26 struct s390_idle_data *idle = this_cpu_ptr(&s390_idle); in enabled_wait() local 38 psw_idle(idle, psw_mask); in enabled_wait() 41 /* Account time spent with enabled wait psw loaded as idle time. */ in enabled_wait() 42 raw_write_seqcount_begin(&idle->seqcount); in enabled_wait() 43 idle_time = idle->clock_idle_exit - idle->clock_idle_enter; in enabled_wait() 44 idle->clock_idle_enter = idle->clock_idle_exit = 0ULL; in enabled_wait() 45 idle->idle_time += idle_time; in enabled_wait() 46 idle->idle_count++; in enabled_wait() 48 raw_write_seqcount_end(&idle->seqcount); in enabled_wait() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/ |
| D | idle-states.yaml | 4 $id: http://devicetree.org/schemas/arm/idle-states.yaml# 7 title: ARM idle states binding description 20 range of dynamic idle states that a processor can enter at run-time, can be 22 enter/exit specific idle states on a given processor. 35 PM implementation to put the processor in different idle states (which include 36 states listed above; "off" state is not an idle state since it does not have 39 Idle state parameters (e.g. entry latency) are platform specific and need to 43 The device tree binding definition for ARM idle states is the subject of this 47 2 - idle-states definitions 50 Idle states are characterized for a specific system through a set of [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/cpu/ |
| D | idle-states.yaml | 4 $id: http://devicetree.org/schemas/cpu/idle-states.yaml# 7 title: Idle states 21 representing the range of dynamic idle states that a processor can enter at 23 parameters required to enter/exit specific idle states on a given processor. 26 2 - ARM idle states 40 PM implementation to put the processor in different idle states (which include 41 states listed above; "off" state is not an idle state since it does not have 44 Idle state parameters (e.g. entry latency) are platform specific and need to 48 The device tree binding definition for ARM idle states is the subject of this 52 3 - RISC-V idle states [all …]
|
| /kernel/linux/linux-5.10/drivers/cpuidle/ |
| D | Kconfig.arm | 3 # ARM CPU Idle drivers 6 bool "Generic ARM/ARM64 CPU idle Driver" 11 It provides a generic idle driver whose idle states are configured 13 initialized by calling the CPU operations init idle hook 17 bool "PSCI CPU idle Driver" 23 It provides an idle driver that is capable of detecting and 24 managing idle states through the PSCI firmware interface. 27 bool "PSCI CPU idle Domain" 34 idle states. 44 Select this option to enable CPU idle driver for big.LITTLE based [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/thermal/ |
| D | intel_powerclamp.rst | 15 - Idle Injection 44 idle injection across all online CPU threads was introduced. The goal 55 Idle Injection 68 If the kernel can also inject idle time to the system, then a 71 control system, where the target set point is a user-selected idle 73 between the actual package level C-state residency ratio and the target idle 81 thread synchronizes its idle time and duration, based on the rounding 89 Alignment of idle time around jiffies ensures scalability for HZ 92 kidle_inject/cpu. During idle injection, it runs monitor/mwait idle 96 The NOHZ schedule tick is disabled during idle time, but interrupts [all …]
|
| D | cpu-idle-cooling.rst | 4 CPU Idle Cooling 37 decrease. Acting on the idle state duration or the idle cycle 47 At a specific OPP, we can assume that injecting idle cycle on all CPUs 49 idle state target residency, we lead to dropping the static and the 51 this state). So the sustainable power with idle cycles has a linear 57 Idle Injection: 60 The base concept of the idle injection is to force the CPU to go to an 61 idle state for a specified time each control cycle, it provides 64 their idle cycles synchronously, the cluster can reach its power down 66 to almost zero. However, these idle cycles injection will add extra [all …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/thermal/ |
| D | intel_powerclamp.rst | 15 - Idle Injection 46 idle injection across all online CPU threads was introduced. The goal 57 Idle Injection 70 If the kernel can also inject idle time to the system, then a 73 control system, where the target set point is a user-selected idle 75 between the actual package level C-state residency ratio and the target idle 83 thread synchronizes its idle time and duration, based on the rounding 91 Alignment of idle time around jiffies ensures scalability for HZ 94 kidle_inject/cpu. During idle injection, it runs monitor/mwait idle 98 The NOHZ schedule tick is disabled during idle time, but interrupts [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/pm/ |
| D | cpuidle.rst | 5 CPU Idle Time Management 13 CPU Idle Time Management Subsystem 18 cores) is idle after an interrupt or equivalent wakeup event, which means that 19 there are no tasks to run on it except for the special "idle" task associated 21 belongs to. That can be done by making the idle logical CPU stop fetching 23 depended on by it into an idle state in which they will draw less power. 25 However, there may be multiple different idle states that can be used in such a 28 particular idle state. That is the role of the CPU idle time management 35 units: *governors* responsible for selecting idle states to ask the processor 40 CPU Idle Time Governors [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/pm/ |
| D | cpuidle.rst | 5 CPU Idle Time Management 13 CPU Idle Time Management Subsystem 18 cores) is idle after an interrupt or equivalent wakeup event, which means that 19 there are no tasks to run on it except for the special "idle" task associated 21 belongs to. That can be done by making the idle logical CPU stop fetching 23 depended on by it into an idle state in which they will draw less power. 25 However, there may be multiple different idle states that can be used in such a 28 particular idle state. That is the role of the CPU idle time management 35 units: *governors* responsible for selecting idle states to ask the processor 40 CPU Idle Time Governors [all …]
|
| /kernel/linux/linux-5.10/drivers/cpuidle/governors/ |
| D | teo.c | 3 * Timer events oriented CPU idle governor 11 * wakeups from idle states. Moreover, information about what happened in the 13 * idle state with target residency within the time to the closest timer is 14 * likely to be suitable for the upcoming idle time of the CPU and, if not, then 15 * which of the shallower idle states to choose. 18 * they can be covered by taking a few most recent idle time intervals of the 20 * idle duration values greater than the time till the closest timer, as the 24 * Thus this governor estimates whether or not the upcoming idle time of the CPU 26 * idle state for it in accordance with that, as follows: 28 * - Find an idle state on the basis of the sleep length and state statistics [all …]
|
| /kernel/linux/linux-6.6/arch/s390/kernel/ |
| D | idle.c | 3 * Idle functions for s390. 26 struct s390_idle_data *idle = this_cpu_ptr(&s390_idle); in account_idle_time_irq() local 34 this_cpu_add(mt_cycles[i], cycles_new[i] - idle->mt_cycles_enter[i]); in account_idle_time_irq() 37 idle_time = S390_lowcore.int_clock - idle->clock_idle_enter; in account_idle_time_irq() 39 S390_lowcore.steal_timer += idle->clock_idle_enter - S390_lowcore.last_update_clock; in account_idle_time_irq() 42 S390_lowcore.system_timer += S390_lowcore.last_update_timer - idle->timer_idle_enter; in account_idle_time_irq() 45 /* Account time spent with enabled wait psw loaded as idle time. */ in account_idle_time_irq() 46 WRITE_ONCE(idle->idle_time, READ_ONCE(idle->idle_time) + idle_time); in account_idle_time_irq() 47 WRITE_ONCE(idle->idle_count, READ_ONCE(idle->idle_count) + 1); in account_idle_time_irq() 53 struct s390_idle_data *idle = this_cpu_ptr(&s390_idle); in arch_cpu_idle() local [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/thermal/ |
| D | cpu-idle-cooling.rst | 4 CPU Idle Cooling 37 decrease. Acting on the idle state duration or the idle cycle 47 At a specific OPP, we can assume that injecting idle cycle on all CPUs 49 idle state target residency, we lead to dropping the static and the 51 this state). So the sustainable power with idle cycles has a linear 57 Idle Injection: 60 The base concept of the idle injection is to force the CPU to go to an 61 idle state for a specified time each control cycle, it provides 64 their idle cycles synchronously, the cluster can reach its power down 66 to almost zero. However, these idle cycles injection will add extra [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/arm/msm/ |
| D | qcom,idle-state.txt | 1 QCOM Idle States for cpuidle driver 3 ARM provides idle-state node to define the cpuidle states, as defined in [1]. 4 cpuidle-qcom is the cpuidle driver for Qualcomm SoCs and uses these idle 5 states. Idle states have different enter/exit latency and residency values. 6 The idle states supported by the QCOM SoC are defined as - 18 hierarchy to enter standby states, when all cpus are idle. An interrupt brings 34 between the time it enters idle and the next known wake up. SPC mode is used 37 sequence for this idle state is programmed to power down the supply to the 58 The idle-state for QCOM SoCs are distinguished by the compatible property of 59 the idle-states device node. [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/arm/msm/ |
| D | qcom,idle-state.txt | 1 QCOM Idle States for cpuidle driver 3 ARM provides idle-state node to define the cpuidle states, as defined in [1]. 4 cpuidle-qcom is the cpuidle driver for Qualcomm SoCs and uses these idle 5 states. Idle states have different enter/exit latency and residency values. 6 The idle states supported by the QCOM SoC are defined as - 18 hierarchy to enter standby states, when all cpus are idle. An interrupt brings 34 between the time it enters idle and the next known wake up. SPC mode is used 37 sequence for this idle state is programmed to power down the supply to the 58 The idle-state for QCOM SoCs are distinguished by the compatible property of 59 the idle-states device node. [all …]
|
| /kernel/linux/linux-6.6/arch/powerpc/include/asm/ |
| D | idle.h | 46 * Indicate to the HV that we are idle. Now would be in pseries_idle_prolog() 49 get_lppaca()->idle = 1; in pseries_idle_prolog() 56 get_lppaca()->idle = 0; in pseries_idle_epilog() 63 * If we are reading from an idle context, update the in read_this_idle_purr() 64 * idle-purr cycles corresponding to the last idle period. in read_this_idle_purr() 65 * Since the idle context is not yet over, take a fresh in read_this_idle_purr() 66 * snapshot of the idle-purr. in read_this_idle_purr() 68 if (unlikely(get_lppaca()->idle == 1)) { in read_this_idle_purr() 79 * If we are reading from an idle context, update the in read_this_idle_spurr() 80 * idle-spurr cycles corresponding to the last idle period. in read_this_idle_spurr() [all …]
|