/openbmc/linux/Documentation/scheduler/ |
H A D | sched-stats.rst | 11 12 which was in the kernel from 2.6.13-2.6.19 (version 13 never saw a kernel 12 release). Some counters make more sense to be per-runqueue; other to be 13 per-domain. Note that domains (and their associated information) will only 18 domain. Domains have no particular names in this implementation, but 22 are no architectures which need more than three domain levels. The first 33 Note that any such script will necessarily be version-specific, as the main 38 -------------- 50 4) # of times schedule() left the processor idle 66 ----------------- 68 CONFIG_SMP is not defined, *no* domains are utilized and these lines [all …]
|
/openbmc/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 …]
|
/openbmc/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() 85 * default_idle_call - Default CPU idle routine. 111 return -EBUSY; in call_cpuidle_s2idle() 120 * The idle task must be scheduled, it is pointless to go to idle, just in call_cpuidle() 121 * update no idle residency and return. in call_cpuidle() 124 dev->last_residency_ns = 0; in call_cpuidle() [all …]
|
/openbmc/u-boot/arch/arm/dts/ |
H A D | am335x-brxre1.dts | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * http://www.br-automation.com 7 /dts-v1/; 15 fset: factory-settings { 16 bl-version = " "; 17 order-no = " "; 18 cpu-order-no = " "; 19 hw-revision = " "; 20 serial-no = <0>; 21 device-id = <0xE681>; [all …]
|
/openbmc/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 …]
|
/openbmc/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 dyntick-idle entry. */ 45 WRITE_ONCE(current->rcu_tasks_idle_cpu, smp_processor_id()); in rcu_dynticks_task_enter() 49 /* Record no current task on dyntick-idle exit. */ 53 WRITE_ONCE(current->rcu_tasks_idle_cpu, -1); in rcu_dynticks_task_exit() 57 /* Turn on heavyweight RCU tasks trace readers on idle/user entry. */ 62 current->trc_reader_special.b.need_mb = true; in rcu_dynticks_task_trace_enter() [all …]
|
/openbmc/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 …]
|
H A 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 …]
|
/openbmc/docs/designs/oem/ibm/ |
H A D | system-power-mode.md | 1 # System Power Mode and Idle Power Saver Support 12 the system power mode and idle power save modes. We need the ability to set and 13 query the system power mode and also the ability to control and set idle power 22 send a mode change and idle power saver (IPS) settings to the OCC. It will also 23 need to send the commands if the user changes the mode or idle power save 34 runtime, the BMC will need to send the mode and the idle power saver settings to 42 - Static 43 - Power Saver 44 - Maximum Performance 46 A proposal for adding Idle Power Saving parameters was submitted to the Redfish [all …]
|
/openbmc/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 …]
|
/openbmc/linux/Documentation/admin-guide/pm/ |
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 …]
|
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 …]
|
/openbmc/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 …]
|
/openbmc/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 …]
|
/openbmc/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 …]
|
/openbmc/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 …]
|
/openbmc/linux/Documentation/devicetree/bindings/power/ |
H A 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 <ulf.hansson@linaro.org> 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 …]
|
/openbmc/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 …]
|
/openbmc/linux/arch/arm64/boot/dts/qcom/ |
H A D | sdx75.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 9 #include <dt-bindings/clock/qcom,rpmh.h> 10 #include <dt-bindings/clock/qcom,sdx75-gcc.h> 11 #include <dt-bindings/interrupt-controller/arm-gic.h> 12 #include <dt-bindings/power/qcom,rpmhpd.h> 13 #include <dt-bindings/power/qcom-rpmpd.h> 14 #include <dt-bindings/soc/qcom,rpmh-rsc.h> 17 #address-cells = <2>; 18 #size-cells = <2>; 19 interrupt-parent = <&intc>; [all …]
|
/openbmc/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 …]
|
/openbmc/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() 66 1U << (bits - 1), 1U << bits, in amdgpu_pasid_alloc() 68 if (pasid != -ENOSPC) in amdgpu_pasid_alloc() 79 * amdgpu_pasid_free - Free a PASID [all …]
|
/openbmc/linux/kernel/time/ |
H A D | tick-sched.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 24 * struct tick_sched - sched tick emulation and no idle tick control/stats 26 * @inidle: Indicator that the CPU is in the tick idle mode 27 * @tick_stopped: Indicator that the idle tick has been stopped 28 * @idle_active: Indicator that the CPU is actively in the tick idle mode; 30 * @do_timer_last: CPU was the last one doing do_timer before going idle 41 * @idle_jiffies: jiffies at the entry to idle for idle time accounting 42 * @idle_waketime: Time when the idle was interrupted 43 * @idle_entrytime: Time when the idle call was entered 44 * @nohz_mode: Mode - one state of tick_nohz_mode [all …]
|
/openbmc/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 …]
|
/openbmc/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 81 off of the queue, one after the other. If no work is queued, the 82 worker threads become idle. These worker threads are managed in so 83 called worker-pools. 85 The cmwq design differentiates between the user-facing workqueues that 87 which manages worker-pools and processes the queued work items. 89 There are two worker-pools, one for normal work items and the other [all …]
|
/openbmc/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 …]
|