/linux/kernel/time/ |
H A 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 …]
|
H A 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/Documentation/timers/ |
H A 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/kernel/sched/ |
H A 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/kernel/ |
H A 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/drivers/cpuidle/ |
H A 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 …]
|
/linux/arch/arm/boot/dts/ti/omap/ |
H A 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/Documentation/admin-guide/pm/ |
H A 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 …]
|
H A 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/arch/arm/mach-omap2/ |
H A 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 …]
|
H A D | cminst44xx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 * Copyright (C) 2008-2011 Texas Instruments, Inc. 26 #include "cm-regbits-34xx.h" 30 #include "prcm-common.h" 45 * 0x2 idle: Module is in Idle mode (only OCP part). It is functional if 58 * omap_cm_base_init - Populates the cm partitions 77 * _clkctrl_idlest - read a CM_*_CLKCTRL register; mask & shift IDLEST bitfield 94 * _is_module_ready - can module registers be accessed without causing an abort? 130 /* Read-modify-write a register in CM1. Caller must lock */ 171 * _clktrctrl_write - write @c to a CM_CLKSTCTRL.CLKTRCTRL register bitfield [all …]
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/fuc/ |
H A 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/drivers/cpuidle/governors/ |
H A 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/drivers/clk/ti/ |
H A 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-woodruff2@ti.com> 11 * Tero Kristo <t-kristo@ti.com> 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/Documentation/devicetree/bindings/i2c/ |
H A 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 <wsa@kernel.org> 17 +-----+ +-----+ 19 +------------------------+ +-----+ +-----+ 21 | /----|------+--------+ 22 | +---+ +------+ | child bus A, on first set of pins [all …]
|
/linux/Documentation/driver-api/nvdimm/ |
H A 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/drivers/powercap/ |
H A 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/tools/power/cpupower/man/ |
H A 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/Documentation/admin-guide/thermal/ |
H A D | intel_powerclamp.rst | 6 - Arjan van de Ven <arjan@linux.intel.com> 7 - Jacob Pan <jacob.jun.pan@linux.intel.com> 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/Documentation/core-api/ |
H A 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/Documentation/driver-api/pm/ |
H A 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/drivers/gpu/drm/amd/amdgpu/ |
H A 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 …]
|
/linux/block/ |
H A D | bfq-wf2q.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Hierarchical Budget Worst-case Fair Weighted Fair Queueing 4 * (B-WF2Q+): hierarchical scheduling algorithm by which the BFQ I/O 9 #include "bfq-iosched.h" 12 * bfq_gt - compare two timestamps. 20 return (s64)(a - b) > 0; in bfq_gt() 25 struct rb_node *node = tree->rb_node; in bfq_root_active_entity() 34 return bfqq ? bfqq->ioprio_class - 1 : in bfq_class_idx() 35 BFQ_DEFAULT_GRP_CLASS - 1; in bfq_class_idx() 40 return bfqd->busy_queues[0] + bfqd->busy_queues[1] + in bfq_tot_busy_queues() [all …]
|
/linux/drivers/macintosh/ |
H A D | via-macii.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Device driver for the via ADB on (many) Mac II-class machines 13 * 1999-08-02 (jmt) - Initial rewrite for Unified ADB. 14 * 2000-03-29 Tony Mantler <tonym@mac.linux-m68k.org> 15 * - Big overhaul, should actually work now. 16 * 2006-12-31 Finn Thain - Another overhaul. 24 * ftp://ftp.apple.com/developer/Tool_Chest/Devices_-_Hardware/Apple_Desktop_Bus/ 39 /* VIA registers - spaced 0x200 bytes apart */ 41 #define B 0 /* B-side data */ 42 #define A RS /* A-side data */ [all …]
|
/linux/Documentation/driver-api/usb/ |
H A D | power-management.rst | 1 .. _usb-power-management: 7 :Date: Last-updated: February 2014 11 --------- 14 * When is a USB device idle? 17 * Changing the default idle-delay time 31 ------------------------- 35 component is ``suspended`` it is in a nonfunctional low-power state; it 37 ``resumed`` (returned to a functional full-power state) when the kernel 67 ---------------------- 84 When is a USB device idle? [all …]
|