Lines Matching +full:two +full:- +full:dimensional
1 .. SPDX-License-Identifier: GPL-2.0
27 CPU idle time management is an energy-efficiency feature concerned about using
31 ------------
37 software as individual single-core processors. In other words, a CPU is an
46 Second, if the processor is multi-core, each core in it is able to follow at
61 Finally, each core in a multi-core processor may be able to follow more than one
66 multiple individual single-core "processors", referred to as *hardware threads*
67 (or hyper-threads specifically on Intel hardware), that each can follow one
78 ---------
112 .. _idle-loop:
117 The idle loop code takes two major steps in every iteration of it. First, it
127 the platform or the processor architecture and organized in a one-dimensional
133 Each idle state present in that array is characterized by two parameters to be
134 taken into account by the governor, the *target residency* and the (worst-case)
147 There are two types of information that can influence the governor's decisions.
152 and exit it. However, the CPU may be woken up by a non-timer event at any time
162 There are four ``CPUIdle`` governors available, ``menu``, `TEO <teo-gov_>`_,
165 tick can be `stopped by the idle loop <idle-cpus-and-tick_>`_. Available
174 matching driver. For example, there are two drivers that can work with the
186 .. _idle-cpus-and-tick:
223 (non-tick) timer due to trigger within the tick range, stopping the tick clearly
225 reprogrammed in that case. Second, if the governor is expecting a non-timer
247 loop altogether. That can be done through the build-time configuration of it
255 generally regarded as more energy-efficient than the systems running kernels in
261 .. _menu-gov:
305 the two is taken as the idle duration prediction.
315 limit coming from the power management quality of service, or `PM QoS <cpu-pm-qos_>`_,
321 if it has not decided to `stop the scheduler tick <idle-cpus-and-tick_>`_. That
330 .. _teo-gov:
337 <menu-gov_>`_: it always tries to find the deepest idle state suitable for the
340 .. kernel-doc:: drivers/cpuidle/governors/teo.c
341 :doc: teo-description
343 .. _idle-states-representation:
349 supported by the processor have to be represented as a one-dimensional array of
355 of it <idle-loop_>`_, must reflect the properties of the idle state at the
359 For example, take a processor with two cores in a larger unit referred to as
502 .. _cpu-pm-qos:
509 energy-efficiency features of the kernel to prevent performance from dropping
512 CPU idle time management can be affected by PM QoS in two ways, through the
518 signed 32-bit integer) to it. In turn, the resume latency constraint for a CPU
520 32-bit integer) to the :file:`power/pm_qos_resume_latency_us` file under
583 `disabled for individual CPUs <idle-states-representation_>`_, there are kernel
594 however, so it is rather crude and not very energy-efficient. For this reason,
610 and ``idle=nomwait``. The first two of them disable the ``acpi_idle`` and
614 which of the two parameters is added to the kernel command line. In the
623 P-states (see |cpufreq|) that require any number of CPUs in a package to be
624 idle, so it very well may hurt single-thread computations performance as well as
625 energy-efficiency. Thus using it for performance reasons may not be a good idea
636 In addition to the architecture-level kernel command line options affecting CPU
642 `Representation of Idle States <idle-states-representation_>`_), causes the
646 the two drivers is different for ``<n>`` equal to ``0``. Adding