CPU parking, windows 2012r2, with no hyper threading

hyperthreadingwindows-8.1windows-server-2012-r2

I have server based on Intel R1304WT2GS with two e5-2660v3, windows 2012r2. I've installed last drivers from intel site. For business purposes i need to disable hyper threading, and use windows 8.1 / 2012r2. The problem is that all cores except two are parked (one per processor) when I disable hyper threading

Cores are parked.

All cores works fine when hyper threading is enabled. I need the best performance, and I am not care about power saving.

I've already tried:

  1. use different operation systems with no results: windows 8.1 pro / windows 8.1 enterprise; by the way windows 7 – don't park any cores
  2. change different bios properties in processor tab, like c/p-states, different number of active cores, turbo boost, and so on – with no results
  3. change performance properties in windows including: power plans, min/max processor state – with no results
  4. use different software like: ParkControl, Disable-CPU-Core-Parking-Utility – with no results
  5. commands like (with no results)
    • Powercfg -setacvalueindex scheme_current sub_processor CPMINCORES 100
    • Powercfg -setactive scheme_current
    • Powercfg -setacvalueindex scheme_current sub_processor CPMAXCORES 50
    • Powercfg -setactive scheme_current
  6. change registry like (with no results)

    • Select Edit > Find… and find this key: " 0cc5b647-c1df-4637-891a-dec35c318583 "
    • Within this key, there is a value called: " ValueMax " This value represents the % number of cores the system will park
    • Change the value of " ValueMax" to 0 so that, it matches " ValueMin "

I was wondering if there was any advice/guidelines/ideas out there that I've missed

Best Answer

The PowerCfg commands will disable opportunistic core parking. If the server’s firmware uses the logical processor idling interface to request that Windows park cores, they would still be parked regardless of power policy configuration. If you take a trace you can see if that’s what’s happening on the system:

Xperf -start MySession -on Microsoft-Windows-Kernel-Processor-Power

Xperf -capturestate MySession Microsoft-Windows-Kernel-Processor-Power

Xperf -stop MySession -d mytrace.etl

Opening the trace in WPA you should see a “Core Parking Cap State” graph. If the cap for a park node is less than the number of cores in the park node (count the number of set bits in the affinity mask in the Park Node column) then a firmware cap is limiting the number of unparked cores via logical processor idling.