The ThrottleStop Guide

Discussion in 'Hardware Components and Aftermarket Upgrades' started by unclewebb, Nov 7, 2010.

  1. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    I think we might need a Cstate version that reports all available core (and preferably package) C states to get a full picture.

    The following screenshot was taken with the "Balanced" power-profile active. According to Performance Monitor the cores spent 99%+ time in Windows C3 state, half of them were parked.

    Interestingly my profile that parks all but one core during idle (to reach x34) reports *no* C2/3/6/7 states at all, neither package nor core, while Performance Monitor keeps reporting 99%+ Windows C3 for all parked cores. My interpretation is that parked cores are in no C state at all, and the one active core is likely using C7 core states during idle.

    The profile that allows *no* parking is the one where Cstate reports C3 core, Performance Monitor reports 50/50 C1/C2 and TS reports 0-1% C2 and C3 package.
     

    Attached Files:

  2. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,735
    Messages:
    6,377
    Likes Received:
    6,613
    Trophy Points:
    681
    I agree. It will take a few days to get around to this but I'll put it on the things to do list. I'll expand the CStates program to show everything that can be shown.

    It's hard to make any sort of comparison between CPU C States and what Performance Monitor reports since they use the same C1/C2/C3 name but the two sources are recording two different things.
     
    duttyend likes this.
  3. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    Thanks for the hard work! ;)
     
  4. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    I wonder about the "erratic" behavior of the "Do not reset FIS/ VID on exit" option when it is *disabled*. Or better to say the impact of the "Set Multiplier" feature when it is enabled.

    This is what happens:

    "Balanced" profile

    When "Set Multiplier" is enabled and set to anything higher than 8x then clocks are constantly changing while the CPU is idle, this also happens with C1E disabled. The average multiplier moves between 11x and 13x, unless load happens.

    Once "Set Multiplier" is disabled or TS turned off (with "Do not reset" disabled) clocks of all cores fall down to 8x at once and stay there unless load happens.

    "High Performance" profile

    Here it doesn't matter whether "Set Multiplier" is enabled or not, in both cases the average multiplier moves between 11x and 14x during idle.

    Customized profile that allows all cores to be parked

    With "Set Multiplier" enabled TS reports maximum clocks for all cores (close to 34x for the active core, 31x for the parked cores). With "Set Multiplier" disabled all cores fall down to 8x. This happens even C1E is disabled.

    Customized profile that allows *no* cores to be parked and is set to stay away from Idle states as much as possible

    Here it doesn't matter whether "Set Multiplier" is enabled or not, in both cases the average multiplier moves between 13x and 15x during idle when C1E is *enabled*. Once C1E is *disabled* all cores increase to x31 (+1 Turbo bin). This is the only combination that allows keeps the CPU more or less at maximum frequency even while idle. This also is the only profile that makes Performance Monitor report 50%/50% C1/C2 instead of 99%+ C3, obviously the C1E switch has a big impact on wattage in this situation (as reported before).

    I think I build the core parking profile on basis of the "Balanced" one while my non core parking is build on "High Performance" and behaves accordingly (all cores active at x31 at idle regardless of the option set or not).

    Question is: Why does TS increase the idle multiplier of the "Balanced" and the core parking customized profile just by enabling "Set Multiplier"? I might have to go through all the profile options to find out which is the one affecting this, but maybe you can explain what TS does when "Set Multiplier" is enabled?

    I thought it is a "one time" switch, that only sends a single instruction to the CPU once activated or changed. But seemingly it sends an ongoing/repeated instruction?! Whatever it does seems to be similar to what is hidden in the "High Performance" profile, because it behaves exactly the same as turning on "Set Multiplier".
     
  5. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    I fear there is something more going on with the Reset/Turn Off thing. I have it that once turned off the multiplier would stay at 8x even with high CPU load up to 95%+ C0 according to TS .

    The only way to fix this is to turn on TS with "Set Multiplier" again. Once it works I can turn off "Set Multiplier" as long as I leave TS turned on in general. So the Reset seems to do something not quite right.

    All tested with the "Balanced" profile.
     
  6. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,735
    Messages:
    6,377
    Likes Received:
    6,613
    Trophy Points:
    681
    If you look in the ThrottleStop docs, the first important thing it says is:

    When you are using the Balanced profile, Windows and ThrottleStop will both be writing information to the same register that controls the multiplier so the result is anyone's guess. ThrottleStop will check this register, see that Windows has changed it and think that it is trying to do some throttling so it will reset this register back to the highest value. Windows will see that, wonder what's going on and it will drop the multiplier trying to save power. This fight over this register goes on infinitely so you will likely see the average multiplier going up and down.

    The "Reset FID/VID on Exit" option determines if this multiplier control register is reset to the highest value upon exit. If it resets it to the highest value, Windows should be able to take over full control of your multiplier. If ThrottleStop doesn't reset this register when it exits, the multiplier might get locked at the lowest possible value and remain there even when fully loaded.
     
    duttyend likes this.
  7. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    That's the information I could only assume, that TS keeps checking and changing the register repeatedly instead of just once. *But* even with the "High Performance" profile the multiplier does *not* get fixed at highest value, even with C1E disabled. I needed to create my own power-profile in combination with "Set Performance" to achieve that.

    Issue here is that it behaves exactly the other way around than you describe. The option is called "DO NOT reset...", but it behaves like "DO reset", and if the "DO NOT" option is disabled the multi is locked at the lowest value.

    Sorry, give me some piece of technology and I stumble over what may be broken. :p

    PS: This is what my profile "Run program" looks like to automatically switch power-profiles with TS profiles. Works like a charm. "C:\Windows\System32\powercfg.exe -s f1e8acb4-62fc-4b54-9a0c-a8249bdf5b90"
     
  8. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,735
    Messages:
    6,377
    Likes Received:
    6,613
    Trophy Points:
    681
    If the average multiplier that ThrottleStop is reporting is not fixed when C1E is disabled then I think that would only happen if one of the other C States is active such as C2/C3/C6/C7. I haven't done any C2 testing yet. Once the CStates program is expanded, maybe we can learn some more. Most of the desktop boards with various bios options to disable C1E/C3/C6 tend to have a high multiplier at idle that varies maybe +/- 0.05. I don't recall seeing any C2 options in their bios so I assume that C2 is usually off or maybe it gets turned on in conjunction with C3.

    The original TS behavior was to always reset the multiplier register when it exited to prevent a user from accidentally getting their multiplier stuck at the lowest value after exiting. This caused a problem with overclockers that used a lower than maximum default multiplier. On an E8400, if they liked to use 8.0 x 500 MHz = 4000 MHz and they ran TS once and immediately exited because they didn't like it, ThrottleStop would set this CPU to its default 9.0 multiplier and suddenly the CPU would try to run at 9.0 x 500 MHz = 4500 MHz and the blue screen was sure to follow. I decided to add the option, Do Not Reset FID / VID to control this. Checking this should prevent the CPU from going up to 9.0. I haven't checked this feature for a while and when you have a check mark to select a "Do Not" option, I agree that's confusing. If I redesign this, I'll do some testing and I'll read your logical argument before I do so.

    I'm happy to hear you found the Run Program feature useful. ThrottleStop is a handy program once you spend some time with it and figure out what it can do.
     
    duttyend likes this.
  9. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    I'm currently reading through a pile of white papers and blogs to better understand the whole P-state, C-state, ACPI C-state and whatnot (and turn my half-wisdom into full-wisdom). ;)

    The Cstate you send me seems to work, but still leaves some questions open, or rather educated interpretation to be made. I'll get back to you once I'm over this.

    One thing you could have a look at is page 823 + 824 of the Intel volume 3b. Not only does it tell us "Note: This field cannot be used to limit
    package C-state to C3", but it seems to present a way to demote C6/7 to C3 and C3/6/7 to C1.

    If the latter even worked on a core basis it would be an interesting feature. Especially since the "Package C-State limit" does not seem to have any conceivable impact (same power consumption setting TS to C1 as on C7/MAX).

    Concerning "Do not Reset" you may have understood me wrong. I am not confused by the "Do not", but the option simply seems to behave the other way around as described. For me the "Do not" option seems to behave like a "Do" option, and removing the "Do not" option behaves as if I had removed a "Do" option. ;)

    On the other hand I just get a hold on how to control all this P-State stuff via power-profiles, so I may not need TS for this anymore. Does TS use P-States for "Set Multiplier" anyway? It seems like it does, because VID changes accordingly. Or does the CPU/ACPI do this on their own when a multiplier change happens?! VID also changes when CMod throttling is used, both via TS or via Windows power-profile. Do you happen to know why 800 mHz via CMod is considerably slower (and displays higher C0%) than 800 mHz via P-State?

    BTW, Performance Monitor's C-States seem to correspond to ACPI C-States, and according to Intel's white paper C3 and C6 may be mapped to ACPI C2 or C3 depending on BIOS implementation. Still strange that Cstate reports less C3 core % than Performance Monitor reports C2 then.
     
  10. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,735
    Messages:
    6,377
    Likes Received:
    6,613
    Trophy Points:
    681
    CState 1.2
    http://www.mediafire.com/?axqc0138wxxwv9h

    Here's the latest version if anyone else wants to know a little more about what C State their Core i CPU is in when idle.

    Performance Monitor's C-States and ACPI C-States should be the same thing but these are different than the CPU C States.

    I have read that part of the docs you mentioned but the promote and demote options are only for the CPU package and you can't control individual cores like I would like to be able to do.

    After a brief test, on my CPU, the Do not Reset option seems to be working correctly. When you were testing were you using the Windows high performance profile? I'm not sure what this option will do if you were using a Windows Balanced profile. You can try monitoring MSR 0x199 with the MSR Tool to see what ThrottleStop is doing on your computer.

    TS simply monitors and writes to MSR 0x199 to try and control the multiplier so I assume that Sandy Bridge CPUs adjust VID automatically based on multiplier requests to this register.

    I know the way CMod works has changed with Sandy Bridge compared to previous CPU generations but I haven't done any hands on testing or performance comparisons.
     
    duttyend likes this.
Loading...

Share This Page