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
    See screenshot. ;)

    My guess is that Windows keeps the "package" from entering C7 most of the time even when all cores are in C7. Maybe Microsoft decided that C7 is too "expensive" compared to C6, because C7 flushes the L3 cache, too.

    Yes, but if Core C3 (CC3) is considered ACPI C2 or C3 is handled by the BIOS. And since my Mac's EFI BIOS seems to map CC3 to ACPI C2 I wonder why CState reports much lower C3 percentage for all but one core compared to Performance Monitor? The only answer I can come up with is that CC2 may also be mapped to ACPI C2 and since CState is not able to report Core C2 we don't see these adding up. Anyway, under normal profile circumstances my package seems to spent most time in C2 and I assume this is made C2E when TS' C1E option is enabled.

    As far as I understand it is specifically for cores! But by default demotion is disabled and needs to be enabled. See this excerpt:

    This sounds like a very interesting feature: Keeping cores from entering C3/6/7 when they have been "too busy" lately.


    I specifically retested with the "High Performance" profile and it does just that. If "Do not Reset" is *not* set then the multiplier is reset to x8 as soon as I push the Turn Off button.

    One more issue: Changing TS profiles via tray-icon leads to TS spamming the "Run Program after profile change", but not always. This didn't happen before Beta 4 and does not happen when changing profiles via keyboard shortcut or TS GUI.
     

    Attached Files:

    duttyend likes this.
  2. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,854
    Messages:
    5,663
    Likes Received:
    4,467
    Trophy Points:
    431
    MSR 0xE2
    MSR_PKG_CST_CONFIG_CONTROL

    This register is the Package C State Configuration Control register. Bits 28, 27, 26 and 25 can be set to control the C State demote options. I was originally testing with a Core i5 desktop CPU and these options did not give me any control over individual cores, only the package.

    [​IMG]

    Edit: I just remembered that ThrottleStop already has a feature that lets you play around with the 4 demotion options.

    http://forum.notebookreview.com/har...531329-throttlestop-guide-37.html#post7231834

    No one posted much testing of this so I kind of forgot about this feature even though a couple of users got increases of over 100% in their 4K SSD write speeds when using this INI option.

    CStateDemotion=

    This value can be set to any value from 0 to 15 which lets you toggle on different CState options.
    Here is Intel's explanation about what these changes do.

    1 - C3 state auto demotion enable. (R/W)
    When set, the processor will conditionally demote C6/C7 requests to C3 based on uncore auto-demote information.

    2 - C1 state auto demotion enable. (R/W)
    When set, the processor will conditionally demote C3/C6/C7 requests to C1 based on uncore auto-demote information.

    4 - Enable C3 undemotion (R/W)
    When set, enables undemotion from demoted C3.

    8 - Enable C1 undemotion (R/W)
    When set, enables undemotion from demoted C1.

    If you wanted to use all of these options, you would just add up 1 + 2 + 4 + 8 and set this INI option to 15.
    error-id10t is using the first two options so is using CStateDemotion=3

    I originally wasn't sure if this feature would work when using a Sandy Bridge CPU because of the various lock bits that Dell is using but I don't think your Apple is locking these options. You can use the MSR Tool and monitor MSR 0xE2 to see how these options change that register.

    Edit: I haven't made any recent changes to the Run Program feature. I tested this 10+ times but each time I switched profiles via the system tray, the .exe program was only run once. If this is happening randomly then I'll try to add some code to 100% prevent this from happening. Is it possible that this could be an Apple specific bug because of the difference in mouses between PCs and Apples?
     
    duttyend likes this.
  3. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,854
    Messages:
    5,663
    Likes Received:
    4,467
    Trophy Points:
    431
    ThrottleStop 3.10 b6
    http://www.mediafire.com/?d628ipulfekuklm

    -changed how the Package C-State limit control works in Sandy Bridge CPUs.
    -added the above CStateDemotion= information to the documentation.
     
    duttyend likes this.
  4. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    It does not give control over "individual" cores, but it affects cores, not packages. So when setting demotion to C3 then all *cores* are demoted from C6/7 to C3, not the package.

    One oddity is that according to your MSR tool you can write different values to cores 0/1 vs. 2/3, but only the last written value is active (even when the registers still show different ones). Writing to one of the core registers sets the same value for a pair of 0/1 or 2/3.

    And it works! ;)

    Yes, but I begin to seriously doubt that any of those benchmarks really measures disc performance, rather than driver or maybe even just the benchmark application's ability to deal with the data.

    To stay with the 4K write example, I can get values between 35 mb/s to 110 mb/s depending on the CPU setting. Normally C1E has an impact, as has the choice of my customized power-profiles that also keep C3/6/7 from happening. Even more strange, demotion seems to have an additional impact even when Cstate already reports 0% C3/6/7 without demotion.

    This is a bit of an awkward way to set it though, because it cannot be changed without restarting TS and it stays at the customized setting when TS is stopped/exited. :p

    It all works and has an impact. So it's really nice to have.

    I'm using a Logitech mouse. I just tried again and it did not happen, but I also changed all Run entries to run "before" and now changed them back to "after". Maybe that cleared something up. No idea. Will report back when it happens again.
     
    duttyend likes this.
  5. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,854
    Messages:
    5,663
    Likes Received:
    4,467
    Trophy Points:
    431
    The MSR Tool is only capable of accessing 4 threads of your CPU. Threads 0/1 belong to the same core and threads 2/3 belong to the next core so when you write a value to one thread, it gets automatically written to both threads of the same core. The MSR Tool needs an update so it can monitor and adjust all 8 threads of a Core i7 with hyper threading.

    I thought the reported improvements in 4K Write times might have something to do with the CPU taking extra time to get out of one of the deep sleep states during a benchmark. The Crystal Disk Mark test doesn't put a heavy load on the CPU so maybe the CPU doesn't have a chance to get into high gear unless some of the C States are disabled.

    Now that I know that the CStateDemotion option is useful, I'll add a separate panel to adjust this so it is a lot more user friendly and you will be able to adjust it without having to restart ThrottleStop. Thanks for all of your feedback and helping to make ThrottleStop a better program.
     
    duttyend likes this.
  6. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    I seriously have no idea what the heck is going on with SATA connections with SSD. They behave like PIO mode in the 1980s in that they seem completely CPU bound.

    It's even worse than just with C-states and deep sleep. Even when I disable all of these the performance depends on CPU clock-rate (aka P-states). Only at full >3.3 gHz clock-rate I get full 4 kb throughput (both read/write, sequential and random). The lower the CPU clock, the lower the performance.

    This is where TS' "Power Saver" could come into play again. One can disable all P-states and only let TS clock up/down depending on load. One drawback is that it more or less needs realtime priority to do that, but TS in realtime priority can cause audio dropouts with audio applications (still testing).
     
  7. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,854
    Messages:
    5,663
    Likes Received:
    4,467
    Trophy Points:
    431
    I'll add an INI option for you so you can adjust ThrottleStop priority and test this further. The throttling problems in the Dell XPS 1645 laptop were best solved when ThrottleStop was using a Realtime priority. For many users, this is probably not necessary. I tried to reduce this once but the complaints came in so I went back to Realtime priority.

    Some of the audio dropouts might be driver related. Windows mostly works in spite of itself and its archaic roots. With the hardware available today, you could create a super computer if Microsoft was able to ditch all backwards compatibility. I think there are still a few Windows 3.1 or Windows 95 skeletons hiding in the closet.
     
    duttyend likes this.
  8. T1mur

    T1mur Notebook Guru

    Reputations:
    0
    Messages:
    55
    Likes Received:
    3
    Trophy Points:
    15
    Thanks, that will be useful once I decided which priority TS should use best. I simply changed its priority via Task-Manager for testing (and could have enforced it externally), but the INI option is welcome.

    Even when settings TS' prio to "Normal" it still uses 15 for its main EXE. This may be a problem, because it seems the GUI is also handled by this thread. So every time the GUI is used to monitor some things it runs at high priority and since it measures and draws stuff it can interfere with other processes. The cycles delta increases whenever the GUI is visible (not so much when restored but hidden beneath another windows) and shots up to 200k when "More data" is used, all at high priorities.

    The reason why TS can interfere with audio software is that most audio applications still use the highest non-realtime priority 15 for their audio and midi threads. So the driver itself is not at fault, but the application that links the ASIO/driver dll at priority 15 only. Aero/DWM is also working at 15 since Vista, so audio app developers should get their act together and either support MMCSS or realtime priority (some do, but it's far from perfect yet).
     
  9. ojojoj

    ojojoj Newbie

    Reputations:
    0
    Messages:
    6
    Likes Received:
    0
    Trophy Points:
    5
  10. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    6,854
    Messages:
    5,663
    Likes Received:
    4,467
    Trophy Points:
    431
    ojojoj: When a Core 2 Duo CPU enters one of the deeper sleep states like C3/C4 it will automatically use a lower VID than ThrottleStop will let you set. The minimum SLFM VID my T8100 uses is 0.9500. The minimum value is unique for each CPU so if the ThrottleStop adjuster only goes down to 0.925 then that's as low as your CPU can go in SLFM. If the C States are working correctly, it will drop down to a lower value than this.
     
    duttyend likes this.
Loading...

Share This Page