Jump to content

[GUIDE] HWP(Intel Speed Shift) enable with full power management


syscl
171 posts in this topic

Recommended Posts

 @truesoldier Tried enabling it, but it didn't make a discernible difference. 

 

lawNsXj.png

did you try rebuilding kernel cache after editing frequency vectors ?


Thanks @truesoldier, tried it out. Average frequencies in idle are lower than before. Minimum frequency got to 2Ghz.

 

zBTh1tS.png


did you try rebuilding kernel cache after editing frequency vectors ?

 

Yep, made sure to rebuild it with every change.


Hm, while using Pike's AppleIntelInfo I noticed EIST is always enabled on my system, whether CPU EIST is set on disable/enable/automatic in BIOS. I don't know how important it is for EIST to be disabled or enabled for proper HWP, but perhaps this is what's causing these high frequencies. 

AppleIntelInfo.kext v2.5 Copyright © 2012-2017 Pike R. Alpha. All rights reserved.

Settings:
------------------------------------------
logMSRs..................................: 1
logIGPU..................................: 0
logCStates...............................: 1
logIPGStyle..............................: 1
InitialTSC...............................: 0x1d13fe78c4c0 (799 MHz)
MWAIT C-States...........................: 1319200

Processor Brandstring....................: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz

Processor Signature..................... : 0x506E3
------------------------------------------
 - Family............................... : 6
 - Stepping............................. : 3
 - Model................................ : 0x5E (94)

Model Specific Registers (MSRs)
------------------------------------------

MSR_CORE_THREAD_COUNT............(0x35)  : 0xFFFFFF804AAF0B00
------------------------------------------
 - Core Count........................... : 4
 - Thread Count......................... : 8

MSR_PLATFORM_INFO................(0xCE)  : 0x80838F1012800
------------------------------------------
 - Maximum Non-Turbo Ratio.............. : 0x28 (4000 MHz)
 - Ratio Limit for Turbo Mode........... : 1 (programmable)
 - TDP Limit for Turbo Mode............. : 1 (programmable)
 - Low Power Mode Support............... : 0 (LMP not supported)
 - Number of ConfigTDP Levels........... : 0 (only base TDP level available)
 - Maximum Efficiency Ratio............. : 8
 - Minimum Operating Ratio.............. : 8

MSR_PMG_CST_CONFIG_CONTROL.......(0xE2)  : 0x7E000008
------------------------------------------
 - I/O MWAIT Redirection Enable......... : 0 (not enabled)
 - CFG Lock............................. : 0 (MSR not locked)
 - C3 State Auto Demotion............... : 1 (enabled)
 - C1 State Auto Demotion............... : 1 (enabled)
 - C3 State Undemotion.................. : 1 (enabled)
 - C1 State Undemotion.................. : 1 (enabled)
 - Package C-State Auto Demotion........ : 1 (enabled)
 - Package C-State Undemotion........... : 1 (enabled)

MSR_PMG_IO_CAPTURE_BASE..........(0xE4)  : 0x31814
------------------------------------------
 - LVL_2 Base Address................... : 0x1814
 - C-state Range........................ : 3 (C-States not included, I/O MWAIT redirection not enabled)

IA32_MPERF.......................(0xE7)  : 0x122F11C6E9
IA32_APERF.......................(0xE8)  : 0x142890242E

MSR_FLEX_RATIO...................(0x194) : 0xE0000
------------------------------------------

MSR_IA32_PERF_STATUS.............(0x198) : 0x2BD000002D00
------------------------------------------
 - Current Performance State Value...... : 0x2D00 (4500 MHz)

MSR_IA32_PERF_CONTROL............(0x199) : 0xA00
------------------------------------------
 - Target performance State Value....... : 0xA00 (1000 MHz)
 - Intel Dynamic Acceleration........... : 0 (IDA engaged)

IA32_CLOCK_MODULATION............(0x19A) : 0x0

IA32_THERM_INTERRUPT.............(0x19B) : 0x0

IA32_THERM_STATUS................(0x19C) : 0x883B0800
------------------------------------------
 - Thermal Status....................... : 0
 - Thermal Log.......................... : 0
 - PROCHOT # or FORCEPR# event.......... : 0
 - PROCHOT # or FORCEPR# log............ : 0
 - Critical Temperature Status.......... : 0
 - Critical Temperature log............. : 0
 - Thermal Threshold #1 Status.......... : 0
 - Thermal Threshold #1 log............. : 0
 - Thermal Threshold #2 Status.......... : 0
 - Thermal Threshold #2 log............. : 0
 - Power Limitation Status.............. : 0
 - Power Limitation log................. : 1
 - Current Limit Status................. : 0
 - Current Limit log.................... : 0
 - Cross Domain Limit Status............ : 0
 - Cross Domain Limit log............... : 0
 - Digital Readout...................... : 59
 - Resolution in Degrees Celsius........ : 1
 - Reading Valid........................ : 1 (valid)

MSR_THERM2_CTL...................(0x19D) : 0x0

IA32_MISC_ENABLES................(0x1A0) : 0x850089
------------------------------------------
 - Fast-Strings......................... : 1 (enabled)
 - FOPCODE compatibility mode Enable.... : 0
 - Automatic Thermal Control Circuit.... : 1 (enabled)
 - Split-lock Disable................... : 0
 - Performance Monitoring............... : 1 (available)
 - Bus Lock On Cache Line Splits Disable : 0
 - Hardware prefetch Disable............ : 0
 - Processor Event Based Sampling....... : 0 (PEBS supported)
 - GV1/2 legacy Enable.................. : 0
 - Enhanced Intel SpeedStep Technology.. : 1 (enabled)
 - MONITOR FSM.......................... : 1 (MONITOR/MWAIT supported)
 - Adjacent sector prefetch Disable..... : 0
 - CFG Lock............................. : 0 (MSR not locked)
 - xTPR Message Disable................. : 1 (disabled)

MSR_TEMPERATURE_TARGET...........(0x1A2) : 0x641400
------------------------------------------
 - Turbo Attenuation Units.............. : 0 
 - Temperature Target................... : 100
 - TCC Activation Offset................ : 0

MSR_MISC_PWR_MGMT................(0x1AA) : 0x18C1
------------------------------------------
 - EIST Hardware Coordination........... : 1 (hardware coordination disabled)
 - Energy/Performance Bias support...... : 1
 - Energy/Performance Bias.............. : 0 (disabled/MSR not visible to software)
 - Thermal Interrupt Coordination Enable : 0 (thermal interrupt not rerouted)

MSR_TURBO_RATIO_LIMIT............(0x1AD) : 0x2D2D2D2D
------------------------------------------
 - Maximum Ratio Limit for C01.......... : 2D (4500 MHz) 
 - Maximum Ratio Limit for C02.......... : 2D (4500 MHz) 
 - Maximum Ratio Limit for C03.......... : 2D (4500 MHz) 
 - Maximum Ratio Limit for C04.......... : 2D (4500 MHz) 

IA32_ENERGY_PERF_BIAS............(0x1B0) : 0x5
------------------------------------------
 - Power Policy Preference...............: 5 (balanced performance and energy saving)

MSR_POWER_CTL....................(0x1FC) : 0x3C005F
------------------------------------------
 - Bi-Directional Processor Hot..........: 1 (enabled)
 - C1E Enable............................: 1 (enabled)

MSR_RAPL_POWER_UNIT..............(0x606) : 0xA0E03
------------------------------------------
 - Power Units.......................... : 3 (1/8 Watt)
 - Energy Status Units.................. : 14 (61 micro-Joules)
 - Time Units .......................... : 10 (976.6 micro-Seconds)

MSR_PKG_POWER_LIMIT..............(0x610) : 0x42FFD0001AEA82
------------------------------------------
 - Package Power Limit #1............... : 3408 Watt
 - Enable Power Limit #1................ : 1 (enabled)
 - Package Clamping Limitation #1....... : 0 (disabled)
 - Time Window for Power Limit #1....... : 13 (20480 milli-Seconds)
 - Package Power Limit #2............... : 4090 Watt
 - Enable Power Limit #2................ : 1 (enabled)
 - Package Clamping Limitation #2....... : 0 (disabled)
 - Time Window for Power Limit #2....... : 33 (10 milli-Seconds)
 - Lock................................. : 0 (MSR not locked)

MSR_PKG_ENERGY_STATUS............(0x611) : 0x1F719D8
------------------------------------------
 - Total Energy Consumed................ : 2012 Joules (Watt = Joules / seconds)

MSR_CONFIG_TDP_NOMINAL...........(0x648) : 0x28
MSR_CONFIG_TDP_LEVEL1............(0x649) : 0x0
MSR_CONFIG_TDP_LEVEL2............(0x64a) : 0x0
MSR_CONFIG_TDP_CONTROL...........(0x64b) : 0x80000000
MSR_TURBO_ACTIVATION_RATIO.......(0x64c) : 0x0
MSR_PKGC3_IRTL...................(0x60a) : 0x884E
MSR_PKGC6_IRTL...................(0x60b) : 0x8876
MSR_PKGC7_IRTL...................(0x60c) : 0x8894
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x3CAE95AC0
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0xF2840088
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x3CAE95AC0
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0xF2840088
MSR_PKG_C6_RESIDENCY.............(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.............(0x3fa) : 0x0
MSR_PKG_C8_RESIDENCY............(0x630) : 0x0
MSR_PKG_C9_RESIDENCY............(0x631) : 0x0
MSR_PKG_C10_RESIDENCY...........(0x632) : 0x0
MSR_PKG_C8_LATENCY..............(0x633) : 0x0
MSR_PKG_C9_LATENCY..............(0x634) : 0x0
MSR_PKG_C10_LATENCY.............(0x635) : 0x0

MSR_PLATFORM_ENERGY_COUNTER......(0x64D) : 0x0 (not supported by hardware/BIOS)

MSR_PPERF........................(0x64E) : 0x13667176C9
------------------------------------------
 - Hardware workload scalability........ : 83323090633

MSR_CORE_PERF_LIMIT_REASONS......(0x64F) : 0x4000000
------------------------------------------
 - PROCHOT Status....................... : 0
 - Thermal Status....................... : 0
 - Residency State Regulation Status.... : 0
 - Running Average Thermal Limit Status. : 0
 - VR Therm Alert Status................ : 0
 - VR Therm Design Current Status....... : 0
 - Other Status......................... : 0
 - Package/Platform-Level #1 Power Limit : 0
 - Package/Platform-Level #2 Power Limit : 0
 - Max Turbo Limit Status............... : 0
 - Turbo Transition Attenuation Status.. : 0
 - PROCHOT Log.......................... : 0
 - Thermal Log.......................... : 0
 - Residency State Regulation Log....... : 0
 - Running Average Thermal Limit Log.... : 0
 - VR Therm Alert Log................... : 0
 - VR Thermal Design Current Log........ : 0
 - Other Status Log..................... : 0
 - Package/Platform-Level #1 Power Limit : 1 (status bit has asserted)
 - Package/Platform-Level #2 Power Limit : 0
 - Max Turbo Limit Log.................. : 0
 - Turbo Transition Attenuation Log..... : 0

IA32_TSC_DEADLINE................(0x6E0) : 0x1D140484DF0A
MSR_PPERF........................(0x63E) : 0x1 (38)

IA32_PM_ENABLE...................(0x770) : 0x1 (HWP Supported and Enabled)

IA32_HWP_CAPABILITIES............(0x771) : 0x110282D
-----------------------------------------
 - Highest Performance.................. : 45
 - Guaranteed Performance............... : 40
 - Most Efficient Performance........... : 16
 - Lowest Performance................... : 1

IA32_HWP_INTERRUPT...............(0x773) : 0x0
------------------------------------------
 - Guaranteed Performance Change........ : 0 (Interrupt generation disabled)
 - Excursion Minimum.................... : 0 (Interrupt generation disabled)

IA32_HWP_REQUEST................(0x774) : 0x202D2D08
-----------------------------------------
 - Minimum Performance................. : 8
 - Maximum Performance................. : 45
 - Desired Performance................. : 45
 - Energy Efficient Performance........ : 32
 - Activity Window..................... : 0, 0
 - Package Control..................... : 0

IA32_HWP_STATUS..................(0x777) : 0x0
-----------------------------------------
 - Guaranteed Performance Change....... : 0 (has not occured)
 - Excursion To Minimum................ : 0 (has not occured)

CPU Ratio Info:
------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......:  8 ( 800 MHz)
Maximum non-Turbo Ratio/Frequency........: 40 (4000 MHz)
Maximum Turbo Ratio/Frequency............: 45 (4500 MHz)
P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ 42 (45) ]
CPU C3-Cores [ 0 1 2 3 4 5 ]
CPU C6-Cores [ 1 2 3 4 5 7 ]
CPU C7-Cores [ 2 4 5 7 ]
CPU P-States [ (34) 42 44 45 ]
CPU C6-Cores [ 0 1 2 3 4 5 7 ]
CPU C7-Cores [ 2 3 4 5 6 7 ]

please upload picture from your CPU Bios Settings.

 

Here are my settings. I downgraded my BIOS a couple of days ago from F21 to F6 (on a Gigabyte Z170X-Gaming 3) to see if that would make any difference. It's not possible to enable or disable HWP in F6 BIOS though. 

 

K0Vb8M5.jpg

LKNqe7R.jpg


Settings:
------------------------------------------
logMSRs..................................: 1
logIGPU..................................: 0
logCStates...............................: 1
logIPGStyle..............................: 1
InitialTSC...............................: 0xb97b8bf030 (19 MHz)
MWAIT C-States...........................: 1319200

Processor Brandstring....................: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz

Processor Signature..................... : 0x506E3
------------------------------------------
 - Family............................... : 6
 - Stepping............................. : 3
 - Model................................ : 0x5E (94)

Model Specific Registers (MSRs)
------------------------------------------

MSR_CORE_THREAD_COUNT............(0x35)  : 0x0
------------------------------------------
 - Core Count........................... : 4
 - Thread Count......................... : 8

MSR_PLATFORM_INFO................(0xCE)  : 0x80838F1012800
------------------------------------------
 - Maximum Non-Turbo Ratio.............. : 0x28 (4000 MHz)
 - Ratio Limit for Turbo Mode........... : 1 (programmable)
 - TDP Limit for Turbo Mode............. : 1 (programmable)
 - Low Power Mode Support............... : 0 (LMP not supported)
 - Number of ConfigTDP Levels........... : 0 (only base TDP level available)
 - Maximum Efficiency Ratio............. : 8
 - Minimum Operating Ratio.............. : 8

MSR_PMG_CST_CONFIG_CONTROL.......(0xE2)  : 0x7E000008
------------------------------------------
 - I/O MWAIT Redirection Enable......... : 0 (not enabled)
 - CFG Lock............................. : 0 (MSR not locked)
 - C3 State Auto Demotion............... : 1 (enabled)
 - C1 State Auto Demotion............... : 1 (enabled)
 - C3 State Undemotion.................. : 1 (enabled)
 - C1 State Undemotion.................. : 1 (enabled)
 - Package C-State Auto Demotion........ : 1 (enabled)
 - Package C-State Undemotion........... : 1 (enabled)

MSR_PMG_IO_CAPTURE_BASE..........(0xE4)  : 0x21814
------------------------------------------
 - LVL_2 Base Address................... : 0x1814
 - C-state Range........................ : 2 (C-States not included, I/O MWAIT redirection not enabled)

IA32_MPERF.......................(0xE7)  : 0xC6E69DDC7
IA32_APERF.......................(0xE8)  : 0xCD3E6CAE9

MSR_FLEX_RATIO...................(0x194) : 0xE0000
------------------------------------------

MSR_IA32_PERF_STATUS.............(0x198) : 0x282800002C00
------------------------------------------
 - Current Performance State Value...... : 0x2C00 (4400 MHz)

MSR_IA32_PERF_CONTROL............(0x199) : 0xA00
------------------------------------------
 - Target performance State Value....... : 0xA00 (1000 MHz)
 - Intel Dynamic Acceleration........... : 0 (IDA engaged)

IA32_CLOCK_MODULATION............(0x19A) : 0x0

IA32_THERM_INTERRUPT.............(0x19B) : 0x0

IA32_THERM_STATUS................(0x19C) : 0x88460800
------------------------------------------
 - Thermal Status....................... : 0
 - Thermal Log.......................... : 0
 - PROCHOT # or FORCEPR# event.......... : 0
 - PROCHOT # or FORCEPR# log............ : 0
 - Critical Temperature Status.......... : 0
 - Critical Temperature log............. : 0
 - Thermal Threshold #1 Status.......... : 0
 - Thermal Threshold #1 log............. : 0
 - Thermal Threshold #2 Status.......... : 0
 - Thermal Threshold #2 log............. : 0
 - Power Limitation Status.............. : 0
 - Power Limitation log................. : 1
 - Current Limit Status................. : 0
 - Current Limit log.................... : 0
 - Cross Domain Limit Status............ : 0
 - Cross Domain Limit log............... : 0
 - Digital Readout...................... : 70
 - Resolution in Degrees Celsius........ : 1
 - Reading Valid........................ : 1 (valid)

MSR_THERM2_CTL...................(0x19D) : 0x0

IA32_MISC_ENABLES................(0x1A0) : 0x850089
------------------------------------------
 - Fast-Strings......................... : 1 (enabled)
 - FOPCODE compatibility mode Enable.... : 0
 - Automatic Thermal Control Circuit.... : 1 (enabled)
 - Split-lock Disable................... : 0
 - Performance Monitoring............... : 1 (available)
 - Bus Lock On Cache Line Splits Disable : 0
 - Hardware prefetch Disable............ : 0
 - Processor Event Based Sampling....... : 0 (PEBS supported)
 - GV1/2 legacy Enable.................. : 0
 - Enhanced Intel SpeedStep Technology.. : 1 (enabled)
 - MONITOR FSM.......................... : 1 (MONITOR/MWAIT supported)
 - Adjacent sector prefetch Disable..... : 0
 - CFG Lock............................. : 0 (MSR not locked)
 - xTPR Message Disable................. : 1 (disabled)

MSR_TEMPERATURE_TARGET...........(0x1A2) : 0x641400
------------------------------------------
 - Turbo Attenuation Units.............. : 0 
 - Temperature Target................... : 100
 - TCC Activation Offset................ : 0

MSR_MISC_PWR_MGMT................(0x1AA) : 0x1CC1
------------------------------------------
 - EIST Hardware Coordination........... : 1 (hardware coordination disabled)
 - Energy/Performance Bias support...... : 1
 - Energy/Performance Bias.............. : 0 (disabled/MSR not visible to software)
 - Thermal Interrupt Coordination Enable : 0 (thermal interrupt not rerouted)

MSR_TURBO_RATIO_LIMIT............(0x1AD) : 0x2C2C2C2C
------------------------------------------
 - Maximum Ratio Limit for C01.......... : 2C (4400 MHz) 
 - Maximum Ratio Limit for C02.......... : 2C (4400 MHz) 
 - Maximum Ratio Limit for C03.......... : 2C (4400 MHz) 
 - Maximum Ratio Limit for C04.......... : 2C (4400 MHz) 

IA32_ENERGY_PERF_BIAS............(0x1B0) : 0x1
------------------------------------------
 - Power Policy Preference...............: 1 (highest performance)

MSR_POWER_CTL....................(0x1FC) : 0x3C005F
------------------------------------------
 - Bi-Directional Processor Hot..........: 1 (enabled)
 - C1E Enable............................: 1 (enabled)

MSR_RAPL_POWER_UNIT..............(0x606) : 0xA0E03
------------------------------------------
 - Power Units.......................... : 3 (1/8 Watt)
 - Energy Status Units.................. : 14 (61 micro-Joules)
 - Time Units .......................... : 10 (976.6 micro-Seconds)

MSR_PKG_POWER_LIMIT..............(0x610) : 0x42FFD0001AEA82
------------------------------------------
 - Package Power Limit #1............... : 3408 Watt
 - Enable Power Limit #1................ : 1 (enabled)
 - Package Clamping Limitation #1....... : 0 (disabled)
 - Time Window for Power Limit #1....... : 13 (20480 milli-Seconds)
 - Package Power Limit #2............... : 4090 Watt
 - Enable Power Limit #2................ : 1 (enabled)
 - Package Clamping Limitation #2....... : 0 (disabled)
 - Time Window for Power Limit #2....... : 33 (10 milli-Seconds)
 - Lock................................. : 0 (MSR not locked)

MSR_PKG_ENERGY_STATUS............(0x611) : 0x3070E8F
------------------------------------------
 - Total Energy Consumed................ : 3100 Joules (Watt = Joules / seconds)

MSR_CONFIG_TDP_NOMINAL...........(0x648) : 0x28
MSR_CONFIG_TDP_LEVEL1............(0x649) : 0x0
MSR_CONFIG_TDP_LEVEL2............(0x64a) : 0x0
MSR_CONFIG_TDP_CONTROL...........(0x64b) : 0x80000000
MSR_TURBO_ACTIVATION_RATIO.......(0x64c) : 0x0
MSR_PKGC3_IRTL...................(0x60a) : 0x884E
MSR_PKGC6_IRTL...................(0x60b) : 0x8876
MSR_PKGC7_IRTL...................(0x60c) : 0x8894
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x8BC330BEA8
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x0
MSR_PKG_C2_RESIDENCY.............(0x60d) : 0x8BC330BEA8
MSR_PKG_C3_RESIDENCY.............(0x3f8) : 0x0
MSR_PKG_C6_RESIDENCY.............(0x3f9) : 0x0
MSR_PKG_C7_RESIDENCY.............(0x3fa) : 0x0
MSR_PKG_C8_RESIDENCY............(0x630) : 0x0
MSR_PKG_C9_RESIDENCY............(0x631) : 0x0
MSR_PKG_C10_RESIDENCY...........(0x632) : 0x0
MSR_PKG_C8_LATENCY..............(0x633) : 0x0
MSR_PKG_C9_LATENCY..............(0x634) : 0x0
MSR_PKG_C10_LATENCY.............(0x635) : 0x0

MSR_PLATFORM_ENERGY_COUNTER......(0x64D) : 0x0 (not supported by hardware/BIOS)

MSR_PPERF........................(0x64E) : 0xC108488EC
------------------------------------------
 - Hardware workload scalability........ : 51816728812

MSR_CORE_PERF_LIMIT_REASONS......(0x64F) : 0x4100000
------------------------------------------
 - PROCHOT Status....................... : 0
 - Thermal Status....................... : 0
 - Residency State Regulation Status.... : 0
 - Running Average Thermal Limit Status. : 0
 - VR Therm Alert Status................ : 0
 - VR Therm Design Current Status....... : 0
 - Other Status......................... : 0
 - Package/Platform-Level #1 Power Limit : 0
 - Package/Platform-Level #2 Power Limit : 0
 - Max Turbo Limit Status............... : 0
 - Turbo Transition Attenuation Status.. : 0
 - PROCHOT Log.......................... : 0
 - Thermal Log.......................... : 0
 - Residency State Regulation Log....... : 1 (status bit has asserted)
 - Running Average Thermal Limit Log.... : 0
 - VR Therm Alert Log................... : 0
 - VR Thermal Design Current Log........ : 0
 - Other Status Log..................... : 0
 - Package/Platform-Level #1 Power Limit : 1 (status bit has asserted)
 - Package/Platform-Level #2 Power Limit : 0
 - Max Turbo Limit Log.................. : 0
 - Turbo Transition Attenuation Log..... : 0
HDC Supported

IA32_PKG_HDC_CTL.................(0xDB0) : 0x0

IA32_PM_CTL1.....................(0xDB1) : 0x1
------------------------------------------
HDC Allow Block..................(0xDB1) : 1 (HDC blocked)

IA32_THREAD_STALL................(0xDB2) : 0x0

MSR_PKG_HDC_CONFIG...............(0x652) : 0x2
------------------------------------------
Pkg Cx Monitor ..................(0x652) : 2 (count package C3 and deeper)
MSR_CORE_HDC_RESIDENCY...........(0x653) : 0x0

MSR_PKG_HDC_SHALLOW_RESIDENCY....(0x655) : 0x0

MSR_PKG_HDC_DEEP_RESIDENCY.......(0x656) : 0x0

IA32_TSC_DEADLINE................(0x6E0) : 0xB981B4D32B
MSR_PPERF........................(0x63E) : 0x1 (38)

IA32_PM_ENABLE...................(0x770) : 0x1 (HWP Supported and Enabled)

IA32_HWP_CAPABILITIES............(0x771) : 0x10A282C
-----------------------------------------
 - Highest Performance.................. : 44
 - Guaranteed Performance............... : 40
 - Most Efficient Performance........... : 10
 - Lowest Performance................... : 1

IA32_HWP_INTERRUPT...............(0x773) : 0x1
------------------------------------------
 - Guaranteed Performance Change........ : 1 (Interrupt generated on change of)
 - Excursion Minimum.................... : 0 (Interrupt generation disabled)

IA32_HWP_REQUEST................(0x774) : 0x802C2C08
-----------------------------------------
 - Minimum Performance................. : 8
 - Maximum Performance................. : 44
 - Desired Performance................. : 44
 - Energy Efficient Performance........ : 128
 - Activity Window..................... : 0, 0
 - Package Control..................... : 0

IA32_HWP_STATUS..................(0x777) : 0x0
-----------------------------------------
 - Guaranteed Performance Change....... : 0 (has not occured)
 - Excursion To Minimum................ : 0 (has not occured)

CPU Ratio Info:
------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......:  8 ( 800 MHz)
Maximum non-Turbo Ratio/Frequency........: 40 (4000 MHz)
Maximum Turbo Ratio/Frequency............: 44 (4400 MHz)
P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ (8) 38 44 ]
CPU C3-Cores [ 0 1 2 7 ]
CPU C6-Cores [ 0 1 2 3 6 7 ]
CPU C7-Cores [ 2 3 5 6 ]
CPU P-States [ (8) 38 44 ]
CPU C3-Cores [ 0 1 2 5 6 7 ]
CPU C7-Cores [ 2 3 4 5 6 7 ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]
CPU C6-Cores [ 0 1 2 3 5 6 7 ]
CPU C6-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ 8 38 (40) 44 ]
CPU P-States [ 8 38 40 41 (44) ]
CPU P-States [ 8 38 40 41 43 (44) ]
CPU P-States [ 8 38 (40) 41 43 44 ]
CPU P-States [ 8 38 40 41 43 (44) ]
CPU P-States [ (8) 38 40 41 43 44 ] 

My running up at 4,4 GHZ and its work fine.

Check this kext, edit Frequencies in the plist from 4400 to 4500.

X86PlatformPluginInjector.kext.zip

post-838043-0-09672300-1493220376_thumb.png

post-838043-0-76786000-1493220915_thumb.png


you use an SSDT?

overclock with CPU Upgrade option in Bios.

@truesoldier @tjrt

 

Thank you for this tip. Resetting my manual overclock values (including voltage) and using the BIOS 'upgrade' option instead seems to have corrected my HWP issues.

hQ86Ulm.png

 

My power usage at idle is about 9W lower than it was previously, and my CPU now properly reaches the 800MHz floor (it doesn't do this too often, but then again I do have a bunch of background processes running most of the time... iStat Menus, Dropbox, Creative Cloud, VPN client etc.)

 

What I did was (using F21 Gigabyte BIOS):

  • remove manual frequency overrides from CPU
  • remove manual CPU Vcore voltage override (I think this was especially important)
  • EIST is set to 'Auto'
  • Intel Speed Shift is set to 'Enabled'
  • save, reboot and re-enter BIOS
  • enable CPU Upgrade option (4.5GHz for i7 6700k)
  • I also enabled 'Platform Power Management' but that seems to be related to peripherals/GPU etc. and probably doesn't matter for this case
  • save, reboot, working as expected!

I'll be interested now to see if changing the frequencyVectors to have the highest energy-saving settings for perf-bias and EPP makes any more of a difference. Out of interest I checked my power usage using the built-in function on my power board, and my computer is running at about ~56W in macOS and about ~60W in Windows (at idle). :)

  • Like 1

Hi @captain-j,

 

1 - I don't think HWPEnable is really needed if everything was configured properly. Note that there's no HWP support in the native FrequencyVectors of iMac17,1 and thus HWP won't be activated by default and yes, HWP isn't gonna be supported on real iMac if everything related is untouched/vanilla. So I guess you may need this injector. (HWP enabled, EPP 0x80)

attachicon.gifX17PP.kext.zip

 

Notes:

- Install it to /S/L/E or /L/E, as for kext injection, it WON'T work!

- This dummy kexts needs board-id to be Mac-DB15BD556843C820 for iMac17,1, for otherwise please rename it inside ./X17PP.kext/C*/Resources/Mac-DB15BD556843C820.plist into the new one.

 

2 - Yep X86* is absolutely essential to be loaded and function correctly (No FrequencyVectors missing, or something else), for otherwise your power management will be incomplete.

 

3 - Again, some injectors like this will NOT work via kext injection, now you have to install them into /S/L/E or /L/E

[...]

Thank you for this. Using your kext, and the SSDT in the OP, things seem to be working on my 6600K using iMac17,1:

 post-13439-0-30190300-1493449766_thumb.png

  • Like 1

@captain-j Good to hear! A bit off-topic, but do you have any issues with sleep on F21?

@truesoldier I have attached a system dump. Thanks for helping out!


  • 2 weeks later...

please test this Clover folder.

 

Many thanks, @truesoldier! I still can't reach the lowest states, but all in all it's MUCH improved as you can see. I haven't seen frequencies this low in idle. What do you think the problem was with the settings I used?

 

HNPTipR.png


  • 4 weeks later...
  • 2 weeks later...

All right. Now I know the usage of the 'Frequencies'! Actually the value is the Max Turbo Frequency. X86 may just read this IMHO to avoid confusions?

e.g. Let's take a look at the configuration file of MacBook9,1. i.e. Mac-9AE82516C7C6B903.plist

For my MacBook9,1, its CPU is Core m5-6Y54, which can turbo boost up to 2.7 GHz / 2700 MHz. And now have a look!

attachicon.gifSnip20170210_39.png

Okay. This is for my CPU. Its value is <integer>1</integer>. This means that the "2nd" ('FrequencyVectors' -> '1') set of the FrequencyVectors will be used. Check the following FrequencyVectors section. Or this picture may help you.

attachicon.gifSnip20170210_42.png

But this is for real Macs. For hackintosh builds. The CPU is typically different from the ones that real Macs used.

So. I suggest everyone edit the 'Frequencies' entry to match your own situations, which the Max Turbo Frequency should correspond to the FrequencyVectors you selected.

 

For example. @syscl's i7-6560u.

According to its specs, the Max Turbo Frequency is 3.2 GHz / 3200 MHz, and we want to use the first set of FrequencyVectors, which can be the most approachable to the vanilla settings and thus we shall change the 'Frequencies[0]' to '3200'. Just like this. And also. You can even delete the other ones. Like this.

attachicon.gifSnip20170210_43.png

 

FYI.

attachicon.gifMac-66E35819EE2D0D05.plist.zip

 

[EDIT]

Or I think we can do it more easily: Select your preferred set of FrequencyVectors, note that just ONE! And then remove the 'Frequencies' entry...

attachicon.gifMac-66E35819EE2D0D05.plist.zip

is it recommended on core i5 3210m ivybridge using macbook pro 9,2 smbios under sierra 10.12.5 to lower my cpu speed when idle?by the way my 3210m lowest speed is 1.2ghz when idle


  • 2 months later...

Great method. Thanks. I've enabled HWP and use the  X86PlatformPluginInjector kext. My idle went from 1300MHz down to 800MHz.

 

I'm emulating a MacbookPro13,3 Core i7 6700HQ with board ID Mac-A5C67F76ED83108C. However, I'm only getting max multiplier 31 instead of 35. I though that changing the frequencies value from 3200 to 3500 would do the trick, but that was not sufficient.

 

This is what I get by changing only the Frequencies value to 3500

------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......:  8 ( 800 MHz)
Maximum non-Turbo Ratio/Frequency........: 26 (2600 MHz)
Maximum Turbo Ratio/Frequency............: 35 (3500 MHz)

IGPU Info:
------------------------------------------
IGPU Current Frequency...................:    0 MHz
IGPU Minimum Frequency...................:  350 MHz
IGPU Maximum Non-Turbo Frequency.........:  350 MHz
IGPU Maximum Turbo Frequency.............: 1050 MHz
IGPU Maximum limit.......................: No Limit

P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ (8) 27 33 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 7 ]
CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (8) 27 33 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 4 5 7 ]
CPU P-States [ (8) 27 29 33 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]

What else needs to be changed to still get the 800MHz idle and max multiplier 35?


Great method. Thanks. I've enabled HWP and use the  X86PlatformPluginInjector kext. My idle went from 1300MHz down to 800MHz.

 

I'm emulating a MacbookPro13,3 Core i7 6700HQ with board ID Mac-A5C67F76ED83108C. However, I'm only getting max multiplier 31 instead of 35. I though that changing the frequencies value from 3200 to 3500 would do the trick, but that was not sufficient.

 

This is what I get by changing only the Frequencies value to 3500

------------------------------------------
Base Clock Frequency (BLCK)............. : 100 MHz
Maximum Efficiency Ratio/Frequency.......:  8 ( 800 MHz)
Maximum non-Turbo Ratio/Frequency........: 26 (2600 MHz)
Maximum Turbo Ratio/Frequency............: 35 (3500 MHz)

IGPU Info:
------------------------------------------
IGPU Current Frequency...................:    0 MHz
IGPU Minimum Frequency...................:  350 MHz
IGPU Maximum Non-Turbo Frequency.........:  350 MHz
IGPU Maximum Turbo Frequency.............: 1050 MHz
IGPU Maximum limit.......................: No Limit

P-State ratio * 100 = Frequency in MHz
------------------------------------------
CPU P-States [ (8) 27 33 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 7 ]
CPU C7-Cores [ 0 1 2 3 4 5 6 7 ]
CPU P-States [ (8) 27 33 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 4 5 7 ]
CPU P-States [ (8) 27 29 33 ] iGPU P-States [ ]
CPU C3-Cores [ 0 1 2 3 4 5 6 7 ]

What else needs to be changed to still get the 800MHz idle and max multiplier 35?

Ring Ratio?

You could try to use another frequency vector  or change ring ratio.

What is your CPU?


×
×
  • Create New...