Home
last modified time | relevance | path

Searched +full:cpu +full:- +full:idle +full:- +full:states (Results 1 – 25 of 354) sorted by relevance

12345678910>>...15

/linux-6.12.1/Documentation/devicetree/bindings/cpu/
Didle-states.yaml1 # 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 <lorenzo.pieralisi@arm.com>
11 - Anup Patel <anup@brainfault.org>
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.12.1/Documentation/admin-guide/pm/
Dintel_idle.rst1 .. 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
29 arguments (passed in the ``EAX`` and ``ECX`` registers of the target CPU), the
38 only way to pass early-configuration-time parameters to it is via the kernel
42 .. _intel-idle-enumeration-of-states:
[all …]
Dcpuidle.rst1 .. SPDX-License-Identifier: GPL-2.0
5 .. |cpufreq| replace:: :doc:`CPU Performance Scaling <cpufreq>`
8 CPU Idle Time Management
19 Modern processors are generally able to enter states in which the execution of
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
[all …]
Dsuspend-flows.rst1 .. SPDX-License-Identifier: GPL-2.0
12 At least one global system-wide transition needs to be carried out for the
14 :doc:`sleep states <sleep-states>`. Hibernation requires more than one
15 transition to occur for this purpose, but the other sleep states, commonly
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
26 different sleep states of the system are quite similar, but there are some
27 significant differences between the :ref:`suspend-to-idle <s2idle>` code flows
28 and the code flows related to the :ref:`suspend-to-RAM <s2ram>` and
29 :ref:`standby <standby>` sleep states.
[all …]
/linux-6.12.1/Documentation/devicetree/bindings/powerpc/opal/
Dpower-mgt.txt1 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.12.1/drivers/cpuidle/
DKconfig.arm1 # SPDX-License-Identifier: GPL-2.0-only
3 # ARM CPU Idle drivers
6 bool "Generic ARM CPU idle Driver"
12 It provides a generic idle driver whose idle states are configured
13 at run-time through DT nodes. The CPUidle suspend backend is
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,
[all …]
Ddt_idle_states.c1 // 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()
32 idle_state->enter = match_id->data; 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()
45 err = of_property_read_u32(state_node, "entry-latency-us", in init_state_node()
48 pr_debug(" * %pOF missing entry-latency-us property\n", in init_state_node()
[all …]
Dcpuidle-riscv-sbi.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * RISC-V SBI CPU idle driver.
9 #define pr_fmt(fmt) "cpuidle-riscv-sbi: " fmt
33 u32 *states; member
52 data->available = true; in sbi_set_domain_state()
53 data->state = state; in sbi_set_domain_state()
60 return data->state; in sbi_get_domain_state()
67 data->available = false; in sbi_clear_domain_state()
74 return data->available; in sbi_is_domain_state_available()
80 u32 *states = __this_cpu_read(sbi_cpuidle_data.states); in sbi_cpuidle_enter_state() local
[all …]
Dcpuidle-psci.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * PSCI CPU idle driver.
29 #include "cpuidle-psci.h"
58 u32 *states = data->psci_states; in __psci_enter_domain_idle_state() local
59 struct device *pd_dev = data->dev; in __psci_enter_domain_idle_state()
65 return -1; in __psci_enter_domain_idle_state()
67 /* Do runtime PM to manage a hierarchical CPU toplogy. */ in __psci_enter_domain_idle_state()
75 state = states[idx]; in __psci_enter_domain_idle_state()
77 ret = psci_cpu_suspend_enter(state) ? -1 : idx; in __psci_enter_domain_idle_state()
86 /* Clear the domain state to start fresh when back from idle. */ in __psci_enter_domain_idle_state()
[all …]
Dcpuidle.c2 * cpuidle.c - core cpuidle infrastructure
4 * (C) 2006-2007 Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
11 #include "linux/percpu-defs.h"
17 #include <linux/sched/idle.h>
20 #include <linux/cpu.h>
55 return off || !initialized || !drv || !dev || !dev->enabled; in cpuidle_not_available()
59 * cpuidle_play_dead - cpu off-lining
70 return -ENODEV; in cpuidle_play_dead()
72 /* Find lowest-power state that supports long-term idle */ in cpuidle_play_dead()
73 for (i = drv->state_count - 1; i >= 0; i--) in cpuidle_play_dead()
[all …]
Dcpuidle-arm.c1 // 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.
55 .states[0] = {
66 { .compatible = "arm,idle-state",
75 * framework. It relies on core code to parse the idle states
78 static int __init arm_idle_init_cpu(int cpu) in arm_idle_init_cpu() argument
[all …]
Dcoupled.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * coupled.c - helper functions to enter the same idle state on multiple cpus
11 #include <linux/cpu.h>
21 * DOC: Coupled cpuidle states
25 * sequencing restrictions (on Tegra 2, cpu 0 must be the last to
26 * power down), or due to HW bugs (on OMAP4460, a cpu powering up
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
29 * coordinating with the other cpu (usually Wait For Interrupt, or
30 * WFI), and one or more "coupled" power states that affect blocks
[all …]
Dcpuidle-kirkwood.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * CPU idle Marvell Kirkwood SoCs
5 * The cpu idle uses wait-for-interrupt and DDR self refresh in order
6 * to implement two idle states -
7 * #1 wait-for-interrupt
8 * #2 wait-for-interrupt and DDR self refresh
27 /* Actual code that puts the SoC in different idle states */
41 .states[0] = ARM_CPUIDLE_WFI_STATE,
42 .states[1] = {
52 /* Initialize CPU idle by registering the idle states */
[all …]
/linux-6.12.1/tools/power/cpupower/man/
Dcpupower-idle-set.11 .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
12 sleep states. This can be handy for power vs performance tuning.
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>.
[all …]
Dcpupower-idle-info.11 .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
26 statistics when it enters or leaves an idle state, therefore on a very idle or
[all …]
Dcpupower-monitor.11 .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
22 \fBcpupower-monitor \fP implements independent processor sleep state and
24 directly reading out hardware registers. Use \-l to get an overview which are
29 \-l
[all …]
/linux-6.12.1/drivers/cpuidle/governors/
Dteo.c1 // SPDX-License-Identifier: GPL-2.0
3 * Timer events oriented CPU idle governor
5 * Copyright (C) 2018 - 2021 Intel Corporation
10 * DOC: teo-description
14 * other interrupts, so they are likely to be the most significant cause of CPU
15 * wakeups from idle states. Moreover, information about what happened in the
17 * idle state with target residency within the (known) time till the closest
19 * the upcoming CPU idle period and, if not, then which of the shallower idle
20 * states to choose instead of it.
22 * Of course, non-timer wakeup sources are more important in some use cases
[all …]
/linux-6.12.1/Documentation/driver-api/pm/
Dcpuidle.rst1 .. 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.12.1/arch/arm64/boot/dts/qcom/
Dsc7180-firmware-tfa.dtsi1 // SPDX-License-Identifier: BSD-3-Clause
4 * Devices that use SC7180 with TrustedFirmware-A
10 /delete-property/ power-domains;
11 /delete-property/ power-domain-names;
13 cpu-idle-states = <&LITTLE_CPU_SLEEP_0
19 /delete-property/ power-domains;
20 /delete-property/ power-domain-names;
22 cpu-idle-states = <&LITTLE_CPU_SLEEP_0
28 /delete-property/ power-domains;
29 /delete-property/ power-domain-names;
[all …]
/linux-6.12.1/arch/arm64/boot/dts/freescale/
Dfsl-ls2088a.dtsi1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Device Tree Include file for Freescale Layerscape-2088A family SoC.
12 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
13 #include "fsl-ls208xa.dtsi"
17 compatible = "arm,cortex-a72-pmu";
22 &cpu {
23 cpu0: cpu@0 {
24 device_type = "cpu";
25 compatible = "arm,cortex-a72";
28 cpu-idle-states = <&CPU_PW20>;
[all …]
Dfsl-ls2080a.dtsi1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Device Tree Include file for Freescale Layerscape-2080A family SoC.
5 * Copyright 2014-2016 Freescale Semiconductor, Inc.
12 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
13 #include "fsl-ls208xa.dtsi"
17 compatible = "arm,cortex-a57-pmu";
22 &cpu {
23 cpu0: cpu@0 {
24 device_type = "cpu";
25 compatible = "arm,cortex-a57";
[all …]
/linux-6.12.1/Documentation/devicetree/bindings/arm/
Dpsci.yaml1 # SPDX-License-Identifier: GPL-2.0
3 ---
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
15 processors") can be used by Linux to initiate various CPU-centric power
18 Issue A of the specification describes functions for CPU suspend, hotplug
25 r0 => 32-bit Function ID / return value
26 {r1 - r3} => Parameters
40 - description:
44 - description:
[all …]
/linux-6.12.1/arch/arm64/boot/dts/sprd/
Dums9620.dtsi1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 interrupt-parent = <&gic>;
12 #address-cells = <2>;
13 #size-cells = <2>;
16 #address-cells = <2>;
17 #size-cells = <0>;
19 cpu-map {
22 cpu = <&CPU0>;
25 cpu = <&CPU1>;
[all …]
/linux-6.12.1/drivers/of/
Dcpu.c1 // SPDX-License-Identifier: GPL-2.0
2 #include <linux/cpu.h>
7 * of_get_cpu_hwid - Get the hardware ID from a CPU device node
9 * @cpun: CPU number(logical index) for which device node is required
12 * Return: The hardware ID for the CPU node or ~0ULL if not found.
29 * arch_match_cpu_phys_id - Match the given logical CPU and physical id
31 * @cpu: logical cpu index of a core/thread
34 * CPU logical to physical index mapping is architecture specific.
36 * id to logical cpu index. phys_id provided here is usually values read
39 * Returns true if the physical identifier and the logical cpu index
[all …]
/linux-6.12.1/arch/arm64/boot/dts/arm/
Djuno-r2.dts9 /dts-v1/;
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
12 #include <dt-bindings/arm/coresight-cti-dt.h>
13 #include "juno-base.dtsi"
14 #include "juno-cs-r1r2.dtsi"
18 compatible = "arm,juno-r2", "arm,juno", "arm,vexpress";
19 interrupt-parent = <&gic>;
20 #address-cells = <2>;
21 #size-cells = <2>;
28 stdout-path = "serial0:115200n8";
[all …]

12345678910>>...15