/linux-6.14.4/Documentation/scheduler/ |
D | sched-stats.rst | 5 Version 17 of schedstats removed 'lb_imbalance' field as it has no 20 …b/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/scheduler/sched-stats.txt?id=1e1dbb25… 24 12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel 25 release). Some counters make more sense to be per-runqueue; other to be 26 per-domain. Note that domains (and their associated information) will only 31 domain. Domains have no particular names in this implementation, but 35 are no architectures which need more than three domain levels. The first 39 …https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/sched-stats.… 44 …https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/sched-stats.… 53 Note that any such script will necessarily be version-specific, as the main [all …]
|
/linux-6.14.4/Documentation/timers/ |
D | no_hz.rst | 2 NO_HZ: Reducing Scheduling-Clock Ticks 7 reduce the number of scheduling-clock interrupts, thereby improving energy 9 some types of computationally intensive high-performance computing (HPC) 10 applications and for real-time applications. 12 There are three main ways of managing scheduling-clock interrupts 13 (also known as "scheduling-clock ticks" or simply "ticks"): 15 1. Never omit scheduling-clock ticks (CONFIG_HZ_PERIODIC=y or 16 CONFIG_NO_HZ=n for older kernels). You normally will -not- 19 2. Omit scheduling-clock ticks on idle CPUs (CONFIG_NO_HZ_IDLE=y or 23 3. Omit scheduling-clock ticks on CPUs that are either idle or that [all …]
|
/linux-6.14.4/kernel/time/ |
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 50 * no CPU is active, it also checks the groups where no migrator is set 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 59 * next local timer or the CPU has no migratable timer pending then the 62 * in the LVL0 group. In both cases the CPU marks itself idle in the LVL0 [all …]
|
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 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 55 * @idle_expires: Next tick in idle, for debugging purpose only [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. 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() 145 dev->last_residency_ns = 0; in call_cpuidle() [all …]
|
/linux-6.14.4/arch/arm/boot/dts/ti/omap/ |
D | omap3-beagle-ab4.dts | 1 // SPDX-License-Identifier: GPL-2.0-only 2 /dts-v1/; 4 #include "omap3-beagle.dts" 8 compatible = "ti,omap3-beagle-ab4", "ti,omap3-beagle", "ti,omap3430", "ti,omap3"; 21 /* Unusable as clockevent because of unreliable oscillator, allow to idle */ 23 /delete-property/ti,no-reset-on-init; 24 /delete-property/ti,no-idle; 26 /delete-property/ti,timer-alwon; 30 /* Preferred always-on timer for clocksource */ 32 ti,no-reset-on-init; [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, 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() 62 current->trc_reader_special.b.need_mb = true; in rcu_task_trace_heavyweight_enter() 71 current->trc_reader_special.b.need_mb = false; in rcu_task_trace_heavyweight_exit() [all …]
|
/linux-6.14.4/drivers/cpuidle/ |
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 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 47 * cpu exits idle, the other cpus will decrement their counter and 50 * requested_state stores the deepest coupled idle state each cpu 56 * and only read after all the cpus are ready for the coupled idle 57 * state are no longer updating it. 62 * the waiting loop, in the ready loop, or in the coupled idle state. 64 * or in the coupled idle state. [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 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() 53 * handler for idle state index 0. 66 { .compatible = "arm,idle-state", 75 * framework. It relies on core code to parse the idle states 85 return -ENOMEM; in arm_idle_init_cpu() 87 drv->cpumask = (struct cpumask *)cpumask_of(cpu); in arm_idle_init_cpu() [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 …]
|
/linux-6.14.4/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/fuc/ |
D | idle.fuc | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 process(PROC_IDLE, #idle, #idle_recv) 30 * IDLE data segment 36 * IDLE code segment 41 // $r15 - current (idle) 42 // $r14 - message 43 // $r0 - zero 49 // $r15 - current (idle) 50 // $r0 - zero 51 idle: [all …]
|
/linux-6.14.4/arch/arm/mach-omap2/ |
D | cm33xx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2011-2012 Texas Instruments Incorporated - https://www.ti.com/ 20 #include "cm-regbits-34xx.h" 21 #include "cm-regbits-33xx.h" 30 * 0x2 idle: Module is in Idle mode (only OCP part). It is functional if 54 /* Read-modify-write a register in CM */ 79 * _clkctrl_idlest - read a CM_*_CLKCTRL register; mask & shift IDLEST bitfield 95 * _is_module_ready - can module registers be accessed without causing an abort? 113 * _clktrctrl_write - write @c to a CM_CLKSTCTRL.CLKTRCTRL register bitfield 118 * @c must be the unshifted value for CLKTRCTRL - i.e., this function [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/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/drivers/clk/ti/ |
D | clkt_dflt.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2005-2008, 2015 Texas Instruments, Inc. 6 * Copyright (C) 2004-2010 Nokia Corporation 9 * Richard Woodruff <r-[email protected]> 11 * Tero Kristo <t-[email protected]> 16 #include <linux/clk-provider.h> 25 * for a module to indicate that it is no longer in idle 37 * _wait_idlest_generic - wait for a module to leave the idle state 41 * @idlest: idle state indicator (0 or 1) for the clock 44 * Wait for a module to leave idle, where its idle-status register is [all …]
|
/linux-6.14.4/Documentation/driver-api/nvdimm/ |
D | firmware-activate.rst | 1 .. SPDX-License-Identifier: GPL-2.0 10 involves a reboot because it has implications for in-flight memory 21 attribute that shows the state of the firmware activation as one of 'idle', 24 - idle: 25 No devices are set / armed to activate firmware 27 - armed: 30 - busy: 32 back to idle and completing an activation cycle. 34 - overflow: 46 'ndbusX/firmware/activate' property will be elided completely if no [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/tools/power/cpupower/man/ |
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 16 \fB\-d\fR \fB\-\-disable\fR <STATE_NO> 19 \fB\-e\fR \fB\-\-enable\fR <STATE_NO> 22 \fB\-D\fR \fB\-\-disable-by-latency\fR <LATENCY> 23 Disable all idle states with a equal or higher latency than <LATENCY>. 25 Enable all idle states with a latency lower than <LATENCY>. 27 \fB\-E\fR \fB\-\-enable-all\fR [all …]
|
/linux-6.14.4/drivers/powercap/ |
D | idle_inject.c | 1 // SPDX-License-Identifier: GPL-2.0 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 [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/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/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 */ 54 * psscr value and mask of the deepest stop idle 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() 193 * the cores. Do this by- in store_fastsleep_workaround_applyonce() 198 * There is no need to send ipi to cores which have all threads in store_fastsleep_workaround_applyonce() 218 return -EIO; in store_fastsleep_workaround_applyonce() [all …]
|
/linux-6.14.4/Documentation/core-api/ |
D | workqueue.rst | 24 there is no work item left on the workqueue the worker becomes idle. 33 thread system-wide. A single MT wq needed to keep around the same 50 limitation that no two polling PIOs can progress at the same time. As 60 * Use per-CPU unified worker pools shared by all wq to provide 83 the functions off of the queue, one after the other. If no work is queued, 84 the worker threads become idle. These worker threads are managed in 85 worker-pools. 87 The cmwq design differentiates between the user-facing workqueues that 89 which manages worker-pools and processes the queued work items. 91 There are two worker-pools, one for normal work items and the other [all …]
|
/linux-6.14.4/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_ids.c | 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 #include <linux/dma-fence-array.h> 50 * amdgpu_pasid_alloc - Allocate a PASID 56 * Returns a positive integer on success. Returns %-EINVAL if bits==0. 57 * Returns %-ENOSPC if no PASID was available. Returns %-ENOMEM on 62 int pasid = -EINVAL; in amdgpu_pasid_alloc() 64 for (bits = min(bits, 31U); bits > 0; bits--) { in amdgpu_pasid_alloc() 65 pasid = ida_alloc_range(&amdgpu_pasid_ida, 1U << (bits - 1), in amdgpu_pasid_alloc() 66 (1U << bits) - 1, GFP_KERNEL); in amdgpu_pasid_alloc() 67 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() [all …]
|