Implement Cx CPU idle states and updated throttling support.
* Use the cpu_idle_hook() to do idling for C1-C3. * Use both _CST and the FADT to detect Cx states. * Use both _PTC and P_CNT for controlling throttling. * Add a notify handler to detect changes in _CST and _PSS * Call the _INI function for each processor if present. This will be done by ACPI-CA in the future. * Fix a bug on SMP systems where CPUs will attach multiple times if the bus is rescan. * Document new sysctls for controlling idling.
This commit is contained in:
parent
b5049ddbf0
commit
6b74f9b7f5
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=122766
@ -309,12 +309,6 @@ Name of the DSDT table to load, if loading is enabled.
|
||||
Selectively disables portions of ACPI for debugging purposes.
|
||||
.It Va hint.acpi.0.disabled
|
||||
Disables all of ACPI.
|
||||
.It Va hw.acpi.cpu.performance_speed
|
||||
Sets the speed of the CPU, if it supports multiple speeds, while in
|
||||
the performance power profile.
|
||||
.It Va hw.acpi.cpu.economy_speed
|
||||
Sets the speed of the CPU, if it supports multiple speeds, while in
|
||||
the economy power profile.
|
||||
.It Va hw.acpi.ec.poll_timeout
|
||||
Delay in milliseconds to wait for the EC to respond. Try increasing this
|
||||
number if you get the error
|
||||
@ -332,8 +326,32 @@ Override the interrupt to use.
|
||||
.It Va hw.acpi.verbose
|
||||
Turn on verbose debugging information about what ACPI is doing.
|
||||
.El
|
||||
.Sh SYSCTLS
|
||||
.Bl -tag -width indent
|
||||
.It Va hw.acpi.cpu.performance_speed
|
||||
Sets the speed of the CPU, if it supports multiple speeds, while in
|
||||
the performance power profile.
|
||||
.It Va hw.acpi.cpu.economy_speed
|
||||
Sets the speed of the CPU, if it supports multiple speeds, while in
|
||||
the economy power profile.
|
||||
.It Va hw.acpi.cpu.cx_history
|
||||
Debugging information listing all sleep states and the number of
|
||||
long and short sleeps for each one.
|
||||
The counters are reset when
|
||||
.Va hw.acpi.cpu.cx_lowest
|
||||
is modified.
|
||||
.It Va hw.acpi.cpu.cx_lowest
|
||||
Zero-based index of the lowest CPU idle state to use.
|
||||
A value of -1 disables ACPI CPU idle states.
|
||||
To enable ACPI CPU idling control,
|
||||
.Va machdep.cpu_idle_hlt
|
||||
must be set to 1.
|
||||
.It Va hw.acpi.cpu.cx_supported
|
||||
List of supported CPU idle states and their transition latency
|
||||
in microseconds.
|
||||
.El
|
||||
.Sh COMPATIBILITY
|
||||
ACPI is only found/supported on i386/ia32, ia64 and amd64.
|
||||
ACPI is only found and supported on i386/ia32, ia64, and amd64.
|
||||
.Sh SEE ALSO
|
||||
.Xr loader.conf 5 ,
|
||||
.Xr acpiconf 8 ,
|
||||
|
@ -245,6 +245,7 @@ dev/acpica/acpi_cpu.c optional acpi
|
||||
dev/acpica/acpi_ec.c optional acpi
|
||||
dev/acpica/acpi_isab.c optional acpi isa
|
||||
dev/acpica/acpi_lid.c optional acpi
|
||||
dev/acpica/acpi_package.c optional acpi
|
||||
dev/acpica/acpi_pci.c optional acpi pci
|
||||
dev/acpica/acpi_pci_link.c optional acpi pci
|
||||
dev/acpica/acpi_pcib.c optional acpi pci
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -35,7 +35,8 @@ SRCS+= utxface.c
|
||||
|
||||
# OSD layer
|
||||
SRCS+= acpi.c acpi_acad.c acpi_battery.c acpi_button.c acpi_cmbat.c acpi_cpu.c
|
||||
SRCS+= acpi_ec.c acpi_isab.c acpi_lid.c acpi_pci.c acpi_pcib.c acpi_pcib_acpi.c
|
||||
SRCS+= acpi_ec.c acpi_isab.c acpi_lid.c
|
||||
SRCS+= acpi_package.c acpi_pci.c acpi_pcib.c acpi_pcib_acpi.c
|
||||
SRCS+= acpi_pcib_pci.c acpi_powerres.c acpi_resource.c acpi_thermal.c
|
||||
SRCS+= acpi_timer.c acpi_pci_link.c
|
||||
SRCS+= OsdDebug.c
|
||||
|
Loading…
Reference in New Issue
Block a user