CPU performance may decrease when you run sysprep after applying Service Pack 2 to Windows Vista or Windows Server 2008.

Applies to: Windows Server 2008 Service Pack 2Windows Vista Service Pack 2

Symptoms


On a Windows Vista or Windows Server 2008 machine, if you install Service Pack 2 then run sysprep, CPU performance may decrease (CPU does not run at maximum performance) depending on the type of operation you perform after running sysprep.

Cause


With Windows Vista or Windows Server 2008 SP2, the processor performance state transaction may be more affected by the operation that is running on the CPU. This is because the Domain Accounting Policy is disabled when both the following is true:

1. The default power option settings is set to "Balanced" or "Power saver" (not "High performance")
2. The computer has more than two logical processors If the Domain Accounting Policy value is set to "0" (when this policy is enabled), the System is considered idle  only when all processors are in the IDLE State, meaning the performance state transition depends on the operational status of all processors. However, if the value is set to "1" (when this policy is disabled), each processor’s performance state is calculated individually. Therefore, when the Domain Accounting Policy is set to "1" rather than "0", processors enter lower performance states more often.

The Domain Accounting Policy is designed to reduce power consumption as much as possible. Because enabling this value will cause processor performance state to change individually, it allows for finer control over processor power management. For example, if only one processor is under heavy load and the other processors have relatively low activity, users can reduce power consumption by having the idle processors to enter a lower performance state.

This feature existed before Service Pack 2, but the default setting for Domain Accounting Policy was 0. After SP2, the default setting for Domain Accounting Policy is set to 1 on “Balance” and “Power saver” power plans. Although it was added for finer power management controls and to lower power consumption, under certain situations, this change may cause CPU performance to become lower than before.

Note that this setting is not applied immediately after applying Service Pack 2. Running sysprep after applying SP2 will cause hardware related settings to be reconfigured, including the Domain Accounting Policy default value.

For images with Service Pack 2 preinstalled, the Domain Accounting Policy setting is "1" by default, and the above is true even before running sysprep.

Resolution


To resolve this issue, set the power option setting to "High performance".

If you would like to use the "Balance", "Power saver" or "Custom" power plans, you can change the Domain Accounting Policy setting by following the instructions that are described in this section. However, we recommend using the "High performance" power plan, as editing the default value is complex and may cause unexpected issues when not done correctly. - How to change the settings for the Domain Accounting Policy
1. Open a new Command Prompt with Administrative privileges.

2. Type the following command and then press ENTER.
powercfg /q scheme_current sub_processor

(Example)
------------------------------------
> powercfg /q scheme_current sub_processor
    Power Setting GUID: bbdc3814-18e9-4463-8a55-d197327c45c0  (Processor Power PerfState setting)
      Possible Setting Index: 000
      Possible Setting Friendly Name: Power saver
      Possible Setting Index: 001
      Possible Setting Friendly Name: Power saver
      Possible Setting Index: 002
      Possible Setting Friendly Name: Balance
      Possible Setting Index: 003
      Possible Setting Friendly Name: Balance
      Possible Setting Index: 004
      Possible Setting Friendly Name: High performance
      Possible Setting Index: 005
      Possible Setting Friendly Name: High performance
      Possible Setting Index: 006
      Possible Setting Friendly Name: Balance
      Possible Setting Index: 007
      Possible Setting Friendly Name: Balance
    Current AC Power Setting Index: 0x00000007    <<<< Current AC power setting index is a "7"
    Current DC Power Setting Index: 0x00000003
------------------------------------

3. To get the current AC power setting information, type the following command and then press ENTER.
powercfg /getpossiblevalue sub_processor procperf <Current Ac Power Setting Index> ("7" in the above example)

(Example)
------------------------------------
> powercfg /getpossiblevalue sub_processor procperf 7
Type: BINARY
Value: 640364000000A0860100A08601001E00000032000000
------------------------------------

4. Type the following command and then press ENTER.
powercfg /ppmperf /decode <Result from previous command>

(Example)
------------------------------------
> powercfg /ppmperf /decode 640364000000A0860100A08601001E00000032000000
Busy Adjust Threshold: 100
Time Check: 100
Increase Time: 100000
Decrease Time: 100000
Increase Percent: 30
Decrease Percent: 50
Domain Accounting Policy: 1
Increase Policy: 1
Decrease Policy: 0
------------------------------------
Note that the Domain Accounting Policy is set to 1 (disabled).

5. Type the following command and then press ENTER.
powercfg /ppmperf /encode /base <Number from step 3> /domainaccountingpolicy 0
 
(Example)
------------------------------------
> powercfg /ppmperf /encode /base 640364000000A0860100A08601001E00000032000000 /domainaccountingpolicy 0
640264000000a0860100a08601001e00000032000000
------------------------------------

6. Type the following command and then press ENTER.
powercfg /setpossiblevalue sub_processor procperf <AC Power Setting Index from step 2> binary <Number from step 5>

(Example)
------------------------------------
> powercfg /setpossiblevalue sub_processor procperf 7 binary 640264000000a0860100a08601001e00000032000000
------------------------------------

7. Restart the computer. The Domain Accounting Policy will be enabled after restarting.

More Information


For more information on Domain Accounting Policy and powercfg commands, please refer to the following document.
http://download.microsoft.com/download/0/0/b/00bba048-35e6-4e5b-a3dc-36da83cbb0d1/ProcPowerMgmt.docx