This is just for my notes on how I went about figuring out how disabling Intel’s turboboost on my Mac Book Pro to contain the heat. 2011 MacBook Pro & OSX
Link1 and Link2 have some nice details about turbo-boost.
A nice overview of TurboBoost in Intel Sandy Bridge at HotChips 23
Intel Manuals & MSR:
one can find description of ModelSpecific Register (MSR), Sandy Bridge onwards, in 64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf
in Power and Thermal Management
chapter:
Just look for details on: MSR IA32_MISC_ENABLE
in 64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf
14.3.2.1 Discover Hardware Support and Enabling of Opportunistic Processor Operation
If an Intel 64 processor has hardware support for opportunistic processor performance operation, the power-on default state of A32_MISC_ENABLE[38] indicates the presence of such hardware support. For Intel 64 processors that support opportunistic processor performance operation, the default value is 1, indicating its presence. For processors that do not support opportunistic processor performance operation, the default value is 0. The power-on default value of IA32_MISC_ENABLE[38] allows BIOS to detect the presence of hardware support of opportunistic processor performance operation.
IA32_MISC_ENABLE[38] is shared across all logical processors in a physical package. It is written by BIOS during platform initiation to enable/disable opportunistic processor operation in conjunction of OS power management capabilities, see Section 14.3.2.2. BIOS can set IA32_MISC_ENABLE[38] with 1 to disable opportunistic processor performance operation; it must clear the default value of IA32_MISC_ENABLE[38] to 0 to enable opportunistic processor performance operation. OS and applications must use CPUID leaf 06H if it needs to detect processors that has opportunistic processor operation enabled.
When CPUID is executed with EAX = 06H on input, Bit 1 of EAX in Leaf 06H (i.e. CPUID.06H:EAX[1]) indicates opportunistic processor performance operation, such as IDA, has been enabled by BIOS.
Opportunistic processor performance operation can be disabled by setting bit 38 of IA32_MISC_ENABLE. This mechanism is intended for BIOS only. If IA32_MISC_ENABLE[38] is set, CPUID.06H:EAX[1] will return 0.
More details can be found in Manual Volume 4: Model-Specific Registers 335592-sdm-vol-4.pdf
:
2.1 ARCHITECTURAL MSRS
Many MSRs have carried over from one generation of IA-32 processors to the next and to Intel 64 processors. A subset of MSRs and associated bit fields, which do not change on future processor generations, are now considered architectural MSRs. For historical reasons (beginning with the Pentium 4 processor), these “architectural MSRs” were given the prefix “IA32_”. Table 2-2 lists the architectural MSRs, their addresses, their current names, their names in previous IA-32 processors, and bit fields that are considered architectural. MSR addresses outside Table 2-2 and certain bit fields in an MSR address that may overlap with architectural MSR addresses are model-specific. Code that accesses a model-specific MSR and that is executed on a processor that does not support that MSR will generate an exception.
However, the most interesting note is in Table 2-3. MSRs in Processors Based on Intel® Core™ Microarchitecture
:
|
|
Linux Intel driver:
A nice answer without intel_pstate at stackoverflow
Linux kernel has a driver to just do this: intel_pstate
(https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html), look for no_turbo
.
|
|
These are various settings supported by intel_pstate
driver:
|
|
Interesting enough, here is some code that points to exactly how things are setup:
|
|
From intel_pstate.c
:
|
|
A few related articles here
OS X driver:
No easy way to do this on OS X. I found this tool github, which wraps the kext/driver.
The kext
does the same thing as noted above:
|
|
Windows Power config:
With windows, it is quite easy- Just go to power config in power options and control the max freq.
Note: this switches off the Windows Modern Standby feature. I found it to be very cool and decided to not to muck around with these settings on my new laptop.
Some details here at stack overflow:
Adding following key allows you to disable Processor Performance boost mode
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\be337238-0d82-4146-a960-4f3749d470c7]
"Attributes"=dword:00000002
Also, one can use tweaking tools like i7 turbo
as described here