diff options
Diffstat (limited to 'static/netbsd/man4/acpicpu.4')
| -rw-r--r-- | static/netbsd/man4/acpicpu.4 | 365 |
1 files changed, 365 insertions, 0 deletions
diff --git a/static/netbsd/man4/acpicpu.4 b/static/netbsd/man4/acpicpu.4 new file mode 100644 index 00000000..ada3e709 --- /dev/null +++ b/static/netbsd/man4/acpicpu.4 @@ -0,0 +1,365 @@ +.\" $NetBSD: acpicpu.4,v 1.37 2024/09/07 20:33:53 rillig Exp $ +.\" +.\" Copyright (c) 2010 Jukka Ruohonen <jruohonen@iki.fi> +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Neither the name of the author nor the names of any +.\" contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd August 31, 2018 +.Dt ACPICPU 4 +.Os +.Sh NAME +.Nm acpicpu +.Nd ACPI CPU +.Sh SYNOPSIS +.Cd "acpicpu* at cpu?" +.Sh DESCRIPTION +The +.Nm +device driver supports certain processor features that are +either only available via +.Tn ACPI +or that require +.Tn ACPI +to function properly. +Typically the +.Tn ACPI +processor functionality is grouped into so-called C-, P-, and T-states. +.Ss C-states +The processor power states, or C-states, +are low-power modes that can be used when the +.Tn CPU +is idle. +The idea is not new: already in the +.Tn 80486 +processor a specific instruction +.Pq Tn HLT +was used for this purpose. +This was later accompanied by a pair of other instructions +.Pq Tn MONITOR , MWAIT . +By default, +.Nx +may use either one; see the +.Ic machdep.idle-mechanism +.Xr sysctl 8 +variable. +.Tn ACPI +provides the latest amendment. +.Pp +The following C-states are typically available. +Additional processor or vendor specific +states (C4, ..., Cn) are handled internally by +.Nm . +.Bl -tag -width C1 -offset indent +.It Dv C0 +This is the normal state of a processor; the +.Tn CPU +is busy executing instructions. +.It Dv C1 +This is the state that is typically reached via the mentioned +.Tn x86 +instructions. +On a typical processor, +.Dv C1 +turns off the main internal +.Tn CPU +clock, leaving +.Tn APIC +running at full speed. +The +.Tn CPU +is free to temporarily leave the state to deal with important requests. +.It Dv C2 +The main difference between +.Dv C1 +and +.Dv C2 +lies in the internal hardware entry method of the processor. +While less power is expected to be consumed than in +.Dv C1 , +the bus interface unit is still running. +But depending on the processor, the local +.Tn APIC +timer may be stopped. +Like with +.Dv C1 , +entering and exiting the state are expected to be fast operations. +.It Dv C3 +This is the deepest conventional state. +Parts of the +.Tn CPU +are actively powered down. +The internal +.Tn CPU +clock is stopped. +The local +.Tn APIC +timer is stopped. +Depending on the processor, additional timers such as +.Xr x86/tsc 9 +may be stopped. +Processor caches may be flushed. +Entry and exit latencies are expected to be high; the +.Tn CPU +can no longer +.Dq quickly +respond to bus activity or other interruptions. +.El +.Pp +Each state has a latency associated with entry and exit. +The higher the state, the lower the power consumption, and +the higher the potential performance costs. +.Pp +The +.Nm +driver tries to balance the latency +constraints when choosing the appropriate state. +One of the checks involves bus master activity; +if such activity is detected, a lower state is used. +It is known that particularly +.Xr usb 4 +may cause high activity even when not in use. +If maximum power savings are desirable, +it may be necessary to use a custom kernel without +.Tn USB +support. +And generally: to save power with C-states, one should +avoid polling, both in userland and in the kernel. +.Ss P-states +The processor performance states, or P-states, are used to +control the clock frequencies and voltages of a +.Tn CPU . +Underneath the abstractions of +.Tn ACPI , +P-states are associated with such technologies as +.Dq SpeedStep +.Pq Intel , +.Dq PowerNow! +.Pq Tn AMD , +and +.Dq PowerSaver +.Pq VIA . +.Pp +The P0-state is always the highest operating +frequency supported by the processor. +The number of additional P-states may vary across processors and vendors. +Each higher numbered P-state represents lower +clock frequencies and hence lower power consumption. +Note that while +.Nm +always uses the exact frequencies internally, +the user-visible values reported by +.Tn ACPI +may be rounded or approximated by the vendor. +.Pp +Unlike conventional +.Tn CPU +frequency management, +.Tn ACPI +provides support for Dynamic Voltage and Frequency Scaling +.Pq Tn DVFS . +Among other things, +this means that the firmware may request the implementation to +dynamically scale the presently supported maximum or minimum clock frequency. +For example, if +.Xr acpiacad 4 +is disconnected, the maximum available frequency may be lowered. +By default, +the +.Nx +implementation may manipulate the frequencies +according to the notifications from the firmware. +.Ss T-states +Processor T-states, or +.Dq throttling states , +can be used to actively modulate the +time a processor is allowed to execute. +Outside the +.Tn ACPI +nomenclature, throttling and T-states may be known as +.Dq on-demand clock modulation +.Pq Tn ODCM . +.Pp +The concept of +.Dq duty cycle +is relevant to T-states. +It is generally defined to be a fraction of time that a system is in an +.Dq active +state. +The T0-state has always a duty cycle of 100 \&%, +and thus, comparable to the C0-state, the processor is fully active. +Each additional higher-numbered T-state indicates lower duty cycles. +At most eight T-states may be available, although also T-states use +.Tn DVFS . +.Pp +The duty cycle does not refer to the actual clock signal, +but to the time period in which the clock signal is allowed +to drive the processor chip. +For instance, if a T-state has a duty cycle of 75 \&%, the +.Tn CPU +runs at the same clock frequency and uses the same voltage, +but 25 \&% of the time the +.Tn CPU +is forced to idle. +Because of this, the use of T-states may +severely affect system performance. +.Pp +There are two typical situations for throttling: +power management and thermal control. +As a technique to save power, +T-states are largely an artifact from the past. +There was a short period in the x86 lineage when P-states +were not yet available and throttling was considered +as an option to modulate the processor power consumption. +The approach was however quickly abandoned. +In modern x86 systems P-states should be preferred in all circumstances. +It is also more beneficial to move from the C0-state +to deeper C-states than it is to actively force down the +duty cycle of a processor. +.Pp +But T-states have retained their use as a last line +of defense against critical thermal conditions. +Many x86 processors include a catastrophic shutdown detector. +When the processor core temperature reaches this factory defined trip-point, +the processor execution is halted without any software control. +Before this fatal condition, it is possible to use throttling +for a short period of time in order to force the temperatures to lower levels. +The thermal control modulation is typically started only when +the system is in the highest-power P-state and +a high temperature situation exists. +After the temperatures have returned to non-critical levels, +the modulation ceases. +.Ss System Control Variables +The +.Nm +driver uses the same +.Xr sysctl 8 +controls for P-states as the ones provided by +.Xr est 4 +and +.Xr powernow 4 . +Please note that future versions of +.Nm +may however remove these system control variables without further notice. +.Pp +In addition, the following two variables are available. +.Bl -tag -width "hw.acpi.cpu.dynamic" -offset indent +.It Ic hw.acpi.cpu.dynamic +A boolean that controls whether the states are allowed to change dynamically. +When enabled, C-, P-, and T-states may all change at runtime, and +.Nm +may also take actions based on requests from the firmware. +.It Ic hw.acpi.cpu.passive +A boolean that enables or disables automatic processor thermal management via +.Xr acpitz 4 . +.El +.Ss Statistics +The +.Nm +driver uses event counters to track the times +a processor has entered a given state. +It is possible to view the statistics by using +.Xr vmstat 1 +(with the +.Fl e +flag). +.Sh SEE ALSO +.Xr acpi 4 , +.Xr acpitz 4 , +.Xr est 4 , +.Xr odcm 4 , +.Xr powernow 4 , +.Xr cpu_idle 9 +.Rs +.%A Etienne Le Sueur +.%A Gernot Heiser +.%T Dynamic Voltage and Frequency Scaling: The Laws of Diminishing Returns +.%O Proceedings of the 2010 Workshop on \ +Power Aware Computing and Systems (HotPower'10) +.%D October, 2010 +.%U http://www.ertos.nicta.com.au/publications/papers/LeSueur_Heiser_10.pdf +.Re +.Rs +.%A David C. Snowdon +.%T Operating System Directed Power Management +.%O PhD Thesis +.%I School of Computer Science and Engineering, University of New South Wales +.%D March, 2010 +.%U http://ertos.nicta.com.au/publications/papers/Snowdon:phd.pdf +.Re +.Rs +.%A Microsoft Corporation +.%T Windows Native Processor Performance Control +.%N Version 1.1a +.%D November, 2002 +.%U http://msdn.microsoft.com/en-us/windows/hardware/gg463343 +.Re +.Rs +.%A Venkatesh Pallipadi +.%A Alexey Starikovskiy +.%T The Ondemand Governor. Past, Present, and Future +.%I Intel Open Source Technology Center +.%O Proceedings of the Linux Symposium +.%D July, 2006 +.%U https://www.kernel.org/doc/ols/2006/ols2006v2-pages-223-238.pdf +.Re +.Sh HISTORY +The +.Nm +device driver appeared in +.Nx 6.0 . +.Sh AUTHORS +.An Jukka Ruohonen +.Aq jruohonen@iki.fi +.Sh CAVEATS +At least the following caveats can be mentioned. +.Bl -bullet +.It +It is currently only safe to use +.Dv C1 +on +.Nx . +All other C-states are disabled by default. +.It +Processor thermal control (see +.Xr acpitz 4 ) +is not yet supported. +.It +Depending on the processor, changes in C-, P-, +and T-states may all skew timers and counters such as +.Xr x86/tsc 9 . +This is neither handled by +.Nm +nor by +.Xr est 4 +or +.Xr powernow 4 . +.It +There is currently neither a well-defined, machine-independent +.Tn API +for processor performance management nor a +.Dq governor +for different policies. +It is only possible to control the +.Tn CPU +frequencies from userland. +.El |
