/linux-6.14.4/Documentation/devicetree/bindings/powerpc/opal/ |
D | power-mgt.txt | 1 IBM Power-Management Bindings 5 idle states. The description of these idle states is exposed via the 6 node @power-mgt in the device-tree by the firmware. 9 ---------------- 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 15 extent of state-loss, whether timebase is stopped on this 16 idle states and so on. The flag bits are as follows: 18 - exit-latency: The latency involved in transitioning the state of the [all …]
|
/linux-6.14.4/Documentation/admin-guide/pm/ |
D | cpuidle.rst | 1 .. SPDX-License-Identifier: GPL-2.0 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. 31 ------------ 33 CPU idle time management operates on CPUs as seen by the *CPU scheduler* (that 37 software as individual single-core processors. In other words, a CPU is an 44 enter an idle state, that applies to the processor as a whole. [all …]
|
D | intel_idle.rst | 1 .. SPDX-License-Identifier: GPL-2.0 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 24 Documentation/admin-guide/pm/cpuidle.rst if you have not done that yet.] 27 logical CPU executing it is idle and so it may be possible to put some of the 28 processor's functional blocks into low-power states. That instruction takes two 38 only way to pass early-configuration-time parameters to it is via the kernel 42 .. _intel-idle-enumeration-of-states: 44 Enumeration of Idle States [all …]
|
D | suspend-flows.rst | 1 .. SPDX-License-Identifier: GPL-2.0 12 At least one global system-wide transition needs to be carried out for the 13 system to get from the working state into one of the supported 14 :doc:`sleep states <sleep-states>`. Hibernation requires more than one 16 referred to as *system-wide suspend* (or simply *system suspend*) states, need 19 For those sleep states, the transition from the working state of the system into 20 the target sleep state is referred to as *system suspend* too (in the majority 21 of cases, whether this means a transition or a sleep state of the system should 22 be clear from the context) and the transition back from the sleep state into the 23 working state is referred to as *system resume*. [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/cpu/ |
D | idle-states.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/cpu/idle-states.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Idle states 10 - Lorenzo Pieralisi <[email protected]> 11 - Anup Patel <[email protected]> 15 1 - Introduction 18 ARM and RISC-V systems contain HW capable of managing power consumption 19 dynamically, where cores can be put in different low-power states (ranging [all …]
|
/linux-6.14.4/drivers/cpuidle/governors/ |
D | teo.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Timer events oriented CPU idle governor 5 * Copyright (C) 2018 - 2021 Intel Corporation 10 * DOC: teo-description 16 * can be determined at the idle state selection time, although doing that may 18 * for idle state selection. 20 * Of course, non-timer wakeup sources are more important in some use cases, 21 * but even then it is generally unnecessary to consider idle duration values 27 * checks if it can select a shallow idle state using wakeup pattern information 29 * at all. For this purpose, it counts CPU wakeup events and looks for an idle [all …]
|
/linux-6.14.4/drivers/thermal/ |
D | cpuidle_cooling.c | 1 // SPDX-License-Identifier: GPL-2.0 21 * struct cpuidle_cooling_device - data for the idle cooling device 22 * @ii_dev: an atomic to keep track of the last task exiting the idle cycle 23 * @state: a normalized integer giving the state of the cooling device 27 unsigned long state; member 31 * cpuidle_cooling_runtime - Running time computation 32 * @idle_duration_us: CPU idle time to inject in microseconds 33 * @state: a percentile based number 35 * The running duration is computed from the idle injection duration 36 * which is fixed. If we reach 100% of idle injection ratio, that [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/power/ |
D | domain-idle-state.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/power/domain-idle-state.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: PM Domain Idle States 10 - Ulf Hansson <[email protected]> 13 A domain idle state node represents the state parameters that will be used to 14 select the state when there are no active components in the PM domain. 18 const: domain-idle-states 21 "^(cpu|cluster|domain)-": [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/mux/ |
D | mux-controller.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/mux/mux-controller.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Peter Rosin <[email protected]> 19 A mux controller provides a number of states to its consumers, and the state 20 space is a simple zero-based enumeration. I.e. 0-1 for a 2-way multiplexer, 21 0-7 for an 8-way multiplexer, etc. 25 -------------------- 28 specifier using the '#mux-control-cells' or '#mux-state-cells' property. [all …]
|
/linux-6.14.4/Documentation/driver-api/pm/ |
D | cpuidle.rst | 1 .. SPDX-License-Identifier: GPL-2.0 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 [all …]
|
/linux-6.14.4/tools/power/cpupower/man/ |
D | cpupower-idle-info.1 | 1 .TH "CPUPOWER-IDLE-INFO" "1" "0.1" "" "cpupower Manual" 4 cpupower\-idle\-info \- Utility to retrieve cpu idle kernel information 7 cpupower [ \-c cpulist ] idle\-info [\fIoptions\fP] 10 A tool which prints out per cpu idle information helpful to developers and interested users. 14 \fB\-f\fR \fB\-\-silent\fR 15 Only print a summary of all available C-states in the system. 17 \fB\-e\fR \fB\-\-proc\fR 19 Prints out idle information in old /proc/acpi/processor/*/power format. This 23 .SH IDLE\-INFO DESCRIPTIONS 24 CPU sleep state statistics and descriptions are retrieved from sysfs files, [all …]
|
D | cpupower-idle-set.1 | 1 .TH "CPUPOWER-IDLE-SET" "1" "0.1" "" "cpupower Manual" 4 cpupower\-idle\-set \- Utility to set cpu idle state specific kernel options 7 cpupower [ \-c cpulist ] idle\-set [\fIoptions\fP] 10 The cpupower idle\-set subcommand allows to set cpu idle, also called cpu 11 sleep state, specific options offered by the kernel. One example is disabling 16 \fB\-d\fR \fB\-\-disable\fR <STATE_NO> 17 Disable a specific processor sleep state. 19 \fB\-e\fR \fB\-\-enable\fR <STATE_NO> 20 Enable a specific processor sleep state. 22 \fB\-D\fR \fB\-\-disable-by-latency\fR <LATENCY> [all …]
|
D | cpupower-monitor.1 | 1 .TH CPUPOWER\-MONITOR "1" "22/02/2011" "" "cpupower Manual" 3 cpupower\-monitor \- Report processor frequency and idle statistics 7 .RB "\-l" 10 .RB [ -c ] [ "\-m <mon1>," [ "<mon2>,..." ] ] 11 .RB [ "\-i seconds" ] 14 .RB [ -c ][ "\-m <mon1>," [ "<mon2>,..." ] ] 18 \fBcpupower-monitor \fP reports processor topology, frequency and idle power 19 state statistics. Either \fBcommand\fP is forked and 22 \fBcpupower-monitor \fP implements independent processor sleep state and 24 directly reading out hardware registers. Use \-l to get an overview which are [all …]
|
/linux-6.14.4/Documentation/driver-api/thermal/ |
D | cpu-idle-cooling.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 CPU Idle Cooling 8 ---------- 26 budget lower than the requested one and under-utilize the CPU, thus 27 losing performance. In other words, one OPP under-utilizes the CPU 33 ---------- 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 [all …]
|
/linux-6.14.4/drivers/cpuidle/ |
D | dt_idle_states.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * DT idle states parsing code. 9 #define pr_fmt(fmt) "DT idle-states: " fmt 29 * pointer of the passed in struct of_device_id array to the idle in init_state_node() 30 * state enter function. in init_state_node() 32 idle_state->enter = match_id->data; in init_state_node() 34 * Since this is not a "coupled" state, it's safe to assume interrupts in init_state_node() 38 idle_state->enter_s2idle = match_id->data; in init_state_node() 40 err = of_property_read_u32(state_node, "wakeup-latency-us", in init_state_node() 41 &idle_state->exit_latency); in init_state_node() [all …]
|
D | coupled.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * coupled.c - helper functions to enter the same idle state on multiple cpus 27 * will corrupt the gic state unless the other cpu runs a work 28 * around). Each cpu has a power state that it can enter without 32 * sometimes the whole SoC). Entering a coupled power state must 36 * WFI state until all cpus are ready to enter a coupled state, at 37 * which point the coupled state function will be called on all 40 * Once all cpus are ready to enter idle, they are woken by an smp 42 * cpus will find work to do, and choose not to enter idle. A 44 * power state enter function at the same time. During this pass, [all …]
|
D | cpuidle-arm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ARM/ARM64 generic CPU idle driver. 25 * arm_enter_idle_state - Programs CPU to enter the specified state 29 * idx: state index 32 * specified target state selected by the governor. 38 * Pass idle state index to arm_cpuidle_suspend which in turn in arm_enter_idle_state() 39 * will call the CPU ops suspend protocol with idle index as a in arm_enter_idle_state() 49 * State at index 0 is standby wfi and considered standard 51 * can't be used as "state 0", DT bindings must be implemented 53 * handler for idle state index 0. [all …]
|
/linux-6.14.4/kernel/ |
D | context_tracking.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * userspace, guest or idle. 7 * runs in idle, userspace or guest mode. 13 * Many thanks to Gilad Ben-Yossef, Paul McKenney, Ingo Molnar, Andrew Morton, 16 * RCU extended quiescent state bits imported from kernel/rcu/tree.c 34 .state = ATOMIC_INIT(CT_RCU_WATCHING), 41 /* Record the current task on exiting RCU-tasks (dyntick-idle entry). */ 45 WRITE_ONCE(current->rcu_tasks_idle_cpu, smp_processor_id()); in rcu_task_exit() 49 /* Record no current task on entering RCU-tasks (dyntick-idle exit). */ 53 WRITE_ONCE(current->rcu_tasks_idle_cpu, -1); in rcu_task_enter() [all …]
|
/linux-6.14.4/arch/powerpc/platforms/powernv/ |
D | idle.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 21 #include <asm/text-patching.h> 29 /* Power ISA 3.0 allows for stop states 0x0 - 0xF */ 40 * The default stop state that will be used by ppc_md.power_save 48 * First stop state levels when SPR and TB loss can occur. 54 * psscr value and mask of the deepest stop idle state. 165 * Used to store fastsleep workaround state 166 * 0 - Workaround applied/undone at fastsleep entry/exit path (Default) 167 * 1 - Workaround applied once, never undone. 185 return -EINVAL; in store_fastsleep_workaround_applyonce() [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/thermal/ |
D | thermal-idle.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 4 --- 5 $id: http://devicetree.org/schemas/thermal/thermal-idle.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: Thermal idle cooling device 11 - Daniel Lezcano <[email protected]> 14 The thermal idle cooling device allows the system to passively 15 mitigate the temperature on the device by injecting idle cycles, 18 This binding describes the thermal idle node. 22 const: thermal-idle [all …]
|
/linux-6.14.4/Documentation/admin-guide/thermal/ |
D | intel_powerclamp.rst | 6 - Arjan van de Ven <[email protected]> 7 - Jacob Pan <[email protected]> 12 - Goals and Objectives 15 - Idle Injection 16 - Calibration 19 - Effectiveness and Limitations 20 - Power vs Performance 21 - Scalability 22 - Calibration 23 - Comparison with Alternative Techniques [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/i2c/ |
D | i2c-mux-pinctrl.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only 3 --- 4 $id: http://devicetree.org/schemas/i2c/i2c-mux-pinctrl.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Pinctrl-based I2C Bus Mux 10 - Wolfram Sang <[email protected]> 17 +-----+ +-----+ 19 +------------------------+ +-----+ +-----+ 21 | /----|------+--------+ 22 | +---+ +------+ | child bus A, on first set of pins [all …]
|
/linux-6.14.4/kernel/time/ |
D | tick-sched.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 /* The CPU is in the tick idle mode */ 19 /* The idle tick has been stopped */ 22 * Indicator that the CPU is actively in the tick idle mode; 26 /* CPU was the last one doing do_timer before going idle */ 34 * struct tick_sched - sched tick emulation and no idle tick control/stats 36 * @flags: State flags gathering the TS_FLAG_* features 47 * @idle_jiffies: jiffies at the entry to idle for idle time accounting 48 * @idle_waketime: Time when the idle was interrupted 50 * @idle_entrytime: Time when the idle call was entered [all …]
|
D | timer_migration.c | 1 // SPDX-License-Identifier: GPL-2.0-only 15 #include "tick-internal.h" 34 * GRP0:0 - GRP0:2 GRP0:3 - GRP0:5 37 * CPUS 0-7 8-15 16-23 24-31 32-39 40-47 40 * queues are updated when CPUs go in idle. When they come out of idle 54 * from the idle CPU and runs the timer function. After that it updates the 57 * CPUs which go idle arm their CPU local timer hardware for the next local 62 * in the LVL0 group. In both cases the CPU marks itself idle in the LVL0 65 * When CPU comes out of idle and when a group has at least a single active 79 * When the last CPU in the system goes idle, then it drops all migrator [all …]
|
/linux-6.14.4/kernel/sched/ |
D | idle.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Generic entry points for the idle threads and 4 * implementation of the idle task scheduling class. 14 * sched_idle_set_state - Record idle state for the current CPU. 15 * @idle_state: State to record. 29 cpu_idle_force_poll--; in cpu_idle_poll_ctrl() 104 * default_idle_call - Default CPU idle routine. 132 return -EBUSY; in call_cpuidle_s2idle() 141 * The idle task must be scheduled, it is pointless to go to idle, just in call_cpuidle() 142 * update no idle residency and return. in call_cpuidle() [all …]
|