The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.
← Previous pageNext page →

    The ThrottleStop Guide

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

  1. Vasudev

    Vasudev Notebook Nobel Laureate

    Reputations:
    12,035
    Messages:
    11,278
    Likes Received:
    8,814
    Trophy Points:
    931
    Just remove the folder containing Throttle Stop. You need to invest some time in tweaking your system. Even I didn't like TS at first, jumped to XTU and after extreme tweaking, spending time with different kinds of undervolts, I switched to TS.
     
  2. margroloc

    margroloc Notebook Geek

    Reputations:
    96
    Messages:
    82
    Likes Received:
    139
    Trophy Points:
    41
    No OC...
    Unless you can find a way to inject old microcodes and overwite your BIOS
    http://voltground.com/haven/threads/84/page-3
    http://forum.notebookreview.com/thr...-intel-haswell-cpu-microcode-bug-hack.790177/

    Just wanted to point out that in theory it is possible to overclock the i7-6700HQ (just like people did with mobile locked haswell) and then overclock via BCLK. But it doesn't seem like a lot of people have tried this
     
  3. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    I have been playing around with a Core i7-7500U lately as well as working on a new version of TS for John over at Obsidian.

    [​IMG]

    How's that for a miserly CPU? I used Speed Shift technology with the Min and Max set to 1 to lock the CPU to the 4 multi at full load. A hair under 400 MHz should keep the slow and sluggish crowd happy. Four threads of the latest version of Prime95 and the CPU is only consuming 1.2 Watts. With some under volting, the VID at full load is under 0.5 V. Not that bad. I have not yet found a way around the 15 W TDP limit. So far the only way to go faster is to undervolt or drop the max cache ratio.

    Edit - Forgot to mention that I found a TS bug when reporting the multiplier on U CPUs. I will get that fixed up for the next release.
     
    Last edited: Mar 4, 2017
    duttyend likes this.
  4. Vasudev

    Vasudev Notebook Nobel Laureate

    Reputations:
    12,035
    Messages:
    11,278
    Likes Received:
    8,814
    Trophy Points:
    931
    The white theme looks better than black because the text boxes is practically invisible, Noobs will find a bit difficult including myself. What about running OCCT than running P95 since @Mobius 1 as reminding everyone not to use p95 because it pulls much energy from AC outlet thereby decreasing the lifetime of CPU in a laptop.
     
  5. neo187

    neo187 Notebook Enthusiast

    Reputations:
    5
    Messages:
    43
    Likes Received:
    2
    Trophy Points:
    16
    @unclewebb Hi Uncle Webb, could I get more info on the EPP value inside the speed shift window? What are the recommended values to optimise the CPU usage according to load?
     
  6. Vasudev

    Vasudev Notebook Nobel Laureate

    Reputations:
    12,035
    Messages:
    11,278
    Likes Received:
    8,814
    Trophy Points:
    931
    128 is Intel default Balanced profile which suits most of the users for General PC usage like Photo edits, MS office apps, browsing etc.
    Set SST value to 0, cpu clocks are always aggressive at max clock speed and lastly 255 is for extreme power savings by clocking the cpu under 1G most of the time.
     
    duttyend likes this.
  7. psyke83

    psyke83 Newbie

    Reputations:
    0
    Messages:
    7
    Likes Received:
    9
    Trophy Points:
    6
    Hi @unclewebb,

    Many thanks for your excellent ThrottleStop program. I've got a Satellite L50-B-14P laptop with an i7 4500U and dedicated AMD Radeon R7 M260 (switchable graphics). The CPU stays comfortably within 30 DTS while running the prime95 small FFT stress test, but if the dedicated GPU is also loaded during the test and reaches ~80 degrees, the CPU hits the thermal limit quite easily (before the PL1 can kick in and lower the turbo boost). Certain CPU and GPU-intensive games also cause throttling (e.g. The Division or GTA 5). I've repasted the CPU/GPU and cleaned out the fan already, so I suspect it's down to the laptop's inadequate cooling system, particularly due to the dedicated GPU causing the CPU to overheat due to it being connected to the same heatsink pipe.

    Rather than simply disabling BD PROCHOT (which does solves the issue of throttling interrupting my gaming), I prefer to use ThrottleStop as follows:
    * Profile 1 (default) makes no changes (30/27 boost for 1/2 cores)
    * Profile 2 limits the turbo boost to 25/24
    * Profile 2 is activated by alarm when DTS reaches 15.

    This works very well; the reduced CPU speed doesn't affect games' performance too much and naturally keeps the CPU from hitting the thermal limit, but I notice some very slight stuttering, presumably due to the profiles switching constantly when it's oscillating between the 15 DTS range.

    I think that the GPU alarm would be more helpful for my usage, but when I attempt to check the "AMD GPU" box, the checkbox becomes ghosted - so it's not detecting the dedicated GPU correctly. Is there anything I can do to help you add support for my GPU? Alternatively, having some kind of cooldown setting for the alarm would probably solve my issue as well (e.g. to specify a cooldown of, say, 5 minutes before Throttlestop is allowed to switch away from the profile activated by the alarm).

    Thanks!
     
    Last edited: Mar 5, 2017
  8. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    A Core i7-7500U has a TDP rating of 15 Watts. Intel designed these so long term, no matter what stress testing program you use, the CPU will throttle so it does not exceed 15 Watts. Running any Intel CPU at 15 Watts is not going to hurt anything or change the long term reliability of the processor in any meaningful way. Intel CPUs are not that fragile. An AC adapter should also be able to deliver this amount of power indefinitely or else it is defective and should be replaced.

    Thanks for the feedback about the black theme. Long term I will probably create an option so a user can switch back and forth between black and traditional so everyone will be happy. I just got tired of looking at same old ThrottleStop so decided to create something a little different.

    This is not always true. Have a look at the example I posted. I am using an EPP value of 0, the CPU is fully loaded with Prime95 but the multiplier is running at the minimum 4. The Speed Shift Min and Max values can be adjusted in the TPL window to give a user more control over the speed their CPU will run at.

    @neo187 - The best way to learn about Speed Shift is to do some hands on testing. Run 1 single thread of the TS Bench test and set it to 1024M so there is a load on the CPU. While this test is running, adjust the various Speed Shift variables and watch what happens to the multiplier and speed of the CPU. The best way to learn is to do some experiments like this. Long term I plan to include the Speed Shift Min and Max variables on the main screen so they can be adjusted for each profile.

    If disabling BD PROCHOT fixes your throttling issue then that means your CPU is not throttling because it is too hot. BD PROCHOT means something else on your motherboard is triggering the throttling. Run a log file with BD PROCHOT disabled, go play a game and see what temperature your CPU is getting up to when it is not throttling and see what speed it is running at. You didn't post a picture of ThrottleStop so I cannot see what your CPU throttling temperature was set to by the manufacturer. What temperature number is beside the PROCHOT word on the main screen? That is the maximum safe operating temperature.

    The ThrottleStop alarms are lousy ways to control a CPU. If your cooling system is inadequate then it would make more sense to lower the power limit value if possible. You could also try setting a PP0 power limit value if you needed to. Letting the CPU manage itself is always best. An Intel CPU can adjust its speed thousands of times per second when it reaches the throttling temperature or a power limit. While throttling like this, the decrease in performance is very smooth. There is no way to achieve that kind of smoothness with ThrottleStop. Software cannot sample your CPU and GPU temperatures often enough for smooth control. The alarms are more useful if a heatsink falls off or your laptop starts running while it is packed in your back pack.

    ThrottleStop gets GPU temperature data from the Nvidia or AMD driver. If TS is not able to report the temperature of your GPU, make sure you are running the latest GPU driver. If there is still no GPU temperature data, there is nothing I can do.
     
    alexhawker and Vasudev like this.
  9. psyke83

    psyke83 Newbie

    Reputations:
    0
    Messages:
    7
    Likes Received:
    9
    Trophy Points:
    6
    Apologies. The PROCHOT temp is configured for 100C on my processor. Here's a screencap after it was triggered:
    [​IMG]

    Here's what features are available/set by default:
    [​IMG]
    [​IMG]
    [​IMG]

    Here's a log captured after the PROCHOT flag was triggered (but BD PROCHOT disabled):
    https://gist.github.com/psyke83/475335a78df48b4b97c7a05df17c609f

    What I meant by disabling BD PROCHOT as "fixing" my problem was that it stops the processor from downclocking to the lowest multiplier during gaming when the PROCHOT signal is triggered. Disabling BD PROCHOT still triggers the PROCHOT signal, but the throttling behaviour of the CPU is better for gaming.

    Unfortunately, when BD PROCHOT is enabled and I run a prime95 stress test (along with Valley benchmark to load the GPU), the PROCHOT 100 signal causes the CPU to downclock to the 8x multiplier, but it then shoots back up to a high turbo multiplier which triggers the PROCHOT 100 signal again.

    So when BD PROCHOT is enabled, in "Limit Reasons", the BD PROCHOT signal and PL2 boxes alternately flash red repeatedly and the CPU doesn't get a chance to enter the PL1 state.

    When BD PROCHOT is disabled, the PROCHOT signal triggers thermal throttling, but it doesn't cause the endless cycle of PL2 <-> BD PROCHOT, and instead the CPU will settle into the PL1 limit, which causes the CPU to run cooler and stop triggering the PROCHOT 100 flag.

    Point taken, but my CPU only overheats when the dedicated GPU is loaded (when the GPU is inactive, no CPU stress test I can find goes beyond ~85c), so setting a PP0 power limit seems to be limiting potential performance for non-gaming scenarios, no?

    By using the alarm configuration, the PROCHOT 100 is never triggered (~97C is as close is it ever gets), so I'm sacrificing some speed, but only when the CPU is close to the thermal limit (which only happens when the GPU is hot).

    Regardless, I haven't tried the PP0 power limit settings, so I'll do some experimenting.

    Yes, the AMD GPU driver is the latest version for Windows 10 x64 (17.2.1). Since you've not made your source code available, can you give me a general idea of what libraries/functions you call to query the temperature on AMD? Open source programs such as Open Hardware Monitor detect the temperature correctly, but *only* when the GPU is currently active (otherwise it reports nothing), so maybe I can poke around the code and see if there's any quirks for switchable graphics that your program doesn't account for.

    Edit: I forgot to mention - when the BD PROCHOT is triggered, Limit Reasons always shows both the CORE and GPU entries turn red at the same time (but the RING does trigger very rarely sometimes). I'm now testing PP0 power limit set (and clamped) to 11 - temperature is staying at around 95C during gaming, PROCHOT is not triggering and I haven't noticed the usual behaviour of BD PROCHOT where the CPU is limited to the lowest multiplier. This might be indeed be the solution for me, pending some more tests.

    Is it unusual for the PP0 Power Limit to be set to zero by default... perhaps Toshiba configured the CPU thermal limits incorrectly? This is not a gaming laptop so I can imagine they didn't test the thermal performance too much.
     
    Last edited: Mar 5, 2017
  10. Chimeray

    Chimeray Notebook Consultant

    Reputations:
    0
    Messages:
    156
    Likes Received:
    8
    Trophy Points:
    31
    Tried ICCMax in XTU but got 0 results with that the last week.

    I take it your laptop arrived then? Great! :) You mind sharing your undervolt? I've been at it some more the last week and I've gotten a stable (i7 7500U):
    -100mV CPU
    -75mV Cache
    -50mV GPU
    -25mV Agent

    I suspect I've got about 5-10mV more to play with but those are harder to track since it doesn't BSOD that fast anymore on real life use. It withstood 120 on the CPU and 100 on cache during stress, but not real life. I haven't gotten the GPU to play nice on 60 neither so I'm almost maxed out! :)

    I've noticed a bug with TS the last couple of days now that I've gotten out of testing mode and actually use my laptop for what I bought it for and that means unplugging my laptop from the charger and using it in my lap. Whenever I unplug TS closes :(
     
  11. illuzn

    illuzn Notebook Consultant

    Reputations:
    56
    Messages:
    140
    Likes Received:
    71
    Trophy Points:
    41
    2 things:
    1. Check that "AC - On, Battery - Off" is not ticked in the options.
    2. If you are using task scheduler to launch TS, follow my instructions here precisely. You probably missed the ones that are greyed out (see step 8).
     
  12. jedisurfer1

    jedisurfer1 Notebook Deity

    Reputations:
    39
    Messages:
    785
    Likes Received:
    50
    Trophy Points:
    41
    is there a similar program to throttlestop for OSX
     
  13. Taras F

    Taras F Newbie

    Reputations:
    0
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    5
    Found this great program and I've got a question. While playing with 7700K overclocking (5.25 - 5.4 Ghz) my ASUS Maximus IX Formula board automatically set CPU IDLE voltage to 1.56 V which seemed too high. And after a week use after resuming from PC sleep I noticed CPU CORE 1 sensor temp was higher 23C on average than any other 3 cores. I reset BIOS, updated BIOS to the new just released version, reinstalled the cooler and even delided reapplying liquid metal. Whatever I did nothing helped!
    Everything but the reported temp on CORE 1 works as it should and the PC is very stable even being overclocked at 5.25Ghz. It seems something got wrong with the thermal sensor on CORE 1 because of that CPU IDLE high overvoltage.

    My question is. Is it possible to write into CPU calibration registers any data to adjust the CPU thermal sensor / DTS / precision so that it stays not into the thermal monitor programs but is left in CPU for good?

    Thanks in advance!
     
  14. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    @psyke83 - Most laptops have PP0 set to zero by default. This just means that this setting is not being used. PP0 throttling should be smoother than the TS Alarm function. I noticed a couple of things with your settings. When you have a CPU that is living on the edge like yours is, you should definitely be doing some under volting. This alone could solve your problem. Go into the FIVR window, click on Unlock Adjustable Voltage and set the CPU Core and CPU Cache both to -50 mV for a starting point. If your CPU runs reliably, try going further to -60 mV, -70 mV or -80 mV. You can also try lowering the System Agent about the same amount too. Another trick I have been playing with lately is reducing the Max Cache Ratio. On a low watt CPU, I think there are some significant power savings here without having to lose too much performance. That will help reduce your temps. Also have another look inside your laptop. Some people have used washers to tighten up the heatsink against the CPU. A few tweaks and tricks like this might be enough to make your laptop a lot more usable. I have never owned a mobile AMD GPU so the ThrottleStop monitoring code has never been properly tested. Some time in the future I will see if I can find the Open Hardware Monitor code and learn something there. With Nvidia GPUs there is a fine line. When writing monitoring code, it is best to avoid waking up the GPU unnecessarily. With AMD GPUs, perhaps TS needs to be more aggressive.

    @Chimeray - I just started playing with a 7500U. I haven't done any significant testing or under volting yet. I think I dropped the core by -100 mV and it was fine at load. Here is a Task Scheduler guide that I wrote. You have to be careful when using the Task Scheduler or this can lead to the problem you are having when switching between AC and battery power.

    http://forum.notebookreview.com/threads/the-throttlestop-guide.531329/page-514

    I recently heard about a program in development for Macs that has a few ThrottleStop like features. Now the programmer needs to copy the 101 other features. You could be in for a long wait.

    Thanks. If you are overclocking a 7700K beyond 5 GHz then I am assuming that you have delidded your CPU. When one core is running significantly hotter than the rest, this is usually a sign that whatever you used or whatever Intel used between the die and heat spreader has pumped out and there is no longer consistent contact between the two. High volts or high temps can cause this. Time to open up your CPU for some maintenance. The core temperature sensors are individually calibrated by Intel and are typically accurate to +/- 5°C at the calibration point. When you start seeing temp variation beyond this, you should start looking elsewhere because the problem is rarely because of the sensors. I do not know of any way to calibrate these sensors after the CPU has left the assembly line.
     
    psyke83 and alexhawker like this.
  15. Taras F

    Taras F Newbie

    Reputations:
    0
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    5
    Okay. I see. I have reassembled the CPU heatspreader 4 or 5 times (certainly its delided). But no changes in the picture, one same core is always hotter than the others by a big margin of approx 23C... That's why I started thinking about the core sensor got suddenly uncalibrated.
     
  16. Casowen

    Casowen Notebook Evangelist

    Reputations:
    64
    Messages:
    399
    Likes Received:
    108
    Trophy Points:
    56
    Hi people, im kind of new here, so here is what I want to ask. What exactly is the "primary power plane limits" settings, and how can I use it to gain the most performance out of my laptop? Im wanting a setting where I can get "max blast" such as disabling C states and such and using the primary power plane limits settings, but I also want a state(or setting) where when I am running the laptop hard, it also wont over heat. here is an image of what I have so far.
     

    Attached Files:

  17. psyke83

    psyke83 Newbie

    Reputations:
    0
    Messages:
    7
    Likes Received:
    9
    Trophy Points:
    6
    Your tips are much appreciated! :)

    Unfortunately, this CPU doesn't seem too tolerant of undervolting. For System Agent, the offset is adjustable, but the status window always shows +0.0000 no matter what value I try to apply... so I guess it's locked? As for Core & Cache, the laptop freezes under load @ -45mV (both set together). So far -40mV is looking stable, so I'll stick with this conservative undervolt for now, but I'm not sure if I should try different values considering I've seen you always recommend to keep the Core & Cache offsets synced. I'll also test the Max Cache Ratio at 8 for a while.

    I think that my CPU is not performing far out of expected thermal conditions, because if the dedicated GPU is unused, the TS 1024M benchmark doesn't exceed 67C on stock settings, and prime95's small FFT is just a few degrees hotter. This is my laptop's heatsink:

    [​IMG]

    I've repasted half a dozen times (to experiment with the optimal amount of Arctic MX-4 thermal compound) & made sure that the fan blades were clean and exhaust free of dust/hairs. I'm guessing that the decision to have a single connected heatsink pipe for both chips is what's causing the CPU to overheat when the AMD GPU (bottom) is hot.

    My testing earlier today with -40mV Core & Cache, PP0 power limit set to 11 and CPU cache multiplier limited to 8, the CPU can still reach about 97C, but the PROCHOT 100 is no longer triggering during intensive games. Still seems pretty hot, but definitely an improvement.
     
  18. alexhawker

    alexhawker Spent Gladiator

    Reputations:
    500
    Messages:
    2,540
    Likes Received:
    792
    Trophy Points:
    131
    Sure. Buy a windows license, run boot camp, and then get what Jobs promised you when you overpaid for the hardware.

    Sorry/not sorry


    Sent from my iPhone using Tapatalk
     
    unclewebb and Vasudev like this.
  19. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    @psyke83 - Your laptop is suffering from an inadequate heatsink and fan which is not uncommon in the laptop industry. Intel recommends that manufacturers use proper cooling so their CPUs can run at their full Intel rated speed. Some manufacturers ignore this advice and use PROCHOT based thermal throttling to keep the CPU on the safe side of the fence. Intel refers to PROCHOT in their docs as the "maximum safe operating temperature".

    [​IMG]

    Up to 100°C scares most people but the way I look at it, if 100°C was that bad, Intel would have set the PROCHOT temperature lower to 95°C or 90°C. They didn't do that so Intel must be comfortable with 100°C and are not too worried about excessive warranty claims when the CPU core temperature is bouncing off of the PROCHOT temperature.

    If there is room inside your laptop, some users have had some success by attaching small copper heatsinks to the length of the heatpipe to beef up the cooling system capacity. Those cheap aluminium plates also have some room for a couple of these little heatsinks.

    http://www.ebay.com/itm/8x-Mini-Cop...931410?hash=item5d6e721f52:g:9HMAAOSwSlBYuRUs

    Other users have modded their laptop cases for better air flow. Sometimes half of the fan airflow is blocked by the laptop case. My Y510P could use some Dremel surgery.

    The Primary Plane refers to the individual CPU cores and the Secondary Plane refers to the Intel GPU. On some CPU models, power and current limits can be set for the individual planes. The primary plane (PP0) power limit is typically set to zero which means the manufacturer decided not to use this power limit for throttling purposes. In most situations, you should leave this setting alone. There is no "max blast" setting in ThrottleStop and there is no reason to disable any of your C States. A Core i7-2720QM needs to have at least C3 enabled so the CPU can use the highest possible turbo multiplier. Disabling the C States will make your CPU run slower as well as hotter when idle which is not something most laptop owners are interested in doing. If you have an overheating problem then post a ThrottleStop log file that shows this problem. Your laptop has many settings locked in the bios so unless you have a specific problem you are trying to solve, you probably do not need to be using ThrottleStop.
     
  20. psyke83

    psyke83 Newbie

    Reputations:
    0
    Messages:
    7
    Likes Received:
    9
    Trophy Points:
    6
    Indeed, but I'm less confident about the reliability of the GPU than the CPU (my last laptop died due to AMD GPU failure). It seems clear that when the GPU and CPU are both heated, too much heat is present in the pipe to be adequately dissipated by the fan or surrounding internal air current. The GPU generally levels out at 90C, and the GPU core speed starts to downclock below the 3D profile's top speed within a few degrees of this threshold. Unfortunately, I've observed the GPU temperature get as high as 94C, and I suspect the thermal limit is 95C (I can't be sure, as I haven't found the specifications for the R7 M260 online).

    For this reason, I think it's not a good idea to disable the BD PROCHOT flag on my laptop - considering the inadequate heatsink, if the GPU is sending the signal, it must be doing so for good reason. So, keeping the CPU cooler can at least help stop the heat pipe from getting swamped so easily.

    That's an interesting idea, but I'm a bit skeptical about adding copper heatsinks. Isn't the heat pipe filled with a fluid in order to dissipate the heat towards the fan? Adding extra copper will allow more heat to build, but unless it's able to pass to the fan, I don't see how it can safely dissipate that extra heat.

    As for the dremel idea, I'm sure that will help ;). My laptop's chassis is pretty low quality - the plastic around one of the hinges recently cracked, so I ought to be careful if doing any surgery, hah.

    I still think that a GPU alarm would be helpful for this laptop, as I prefer to have full performance for other workloads (e.g. compiling code). I could configure the normal profile to run at full speed (since as I said, the CPU doesn't exceed 67C for any stress tests when the GPU is unused), but if the GPU exceeds 80C, I could change to a profile with a conservative PP0 power limit (as that definitely does help avoid the heatsink getting swamped enough to trigger constant throttling). Regardless, I'm definitely going to stick with the undervolt for all usage scenarios, as you've recommended.
     
    Last edited: Mar 7, 2017
  21. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    I have been doing some Prime95 testing on a Core i7-7500U. Using ThrottleStop, I adjusted both of the Package Power Limits to 25 Watts but this did not help. Even when under volted, after about 30 seconds, it starts to throttle so it does not exceed the 15 Watt TDP (PL1) limit.

    [​IMG]

    One limitation of ThrottleStop is that it only has access to the power limits in the CPU registers. There is a duplicate power limit register that can be accessed via the memory mapped IO (MMIO) that ThrottleStop does not have access to. I decided to use RW Everything to see what that register is set to. Let's see what is hiding in memory location FED159A0

    [​IMG]

    The two underlined values show where the power limits are hiding. The leading 8 in both values just means that both of these power limits are enabled. The first limit shows 078. These numbers are in hexadecimal format so if we go to Google and type in 0x78 in decimal, it will show a decimal value of 120. This number needs to be divided by 8 to convert it to watts. 120 / 8 = 15 Watts

    The second value is C8 which is equivalent to 200. Divide 200 by 8 and that means the short term limit is set to 25 Watts. After doing some testing and to keep the math simple, I decided to set both of these power limits to 32 Watts. Doing the math in reverse, I need to multiply 32 X 8 = 256 and 256 in decimal is 0x100 in hexadecimal. I still need the leading 8 to tell the CPU that these limits are enabled so using RW Everything, I changed both of these limits to 8100.

    [​IMG]

    The other numbers in those registers represent the turbo time limits but since both power limits are set equally, there is no need to play with the time limits. Previously I was under volted using Prime95. For the next test I wanted to push the CPU as hard as possible so I ditched the under volt and went back to default voltage and I also decided to use a recent version of LinX instead of Prime95 to create some more power consumption.

    [​IMG]

    Well look at that. A thoroughly abused low power U CPU running the most demanding test on the planet at full speed with not a hint of any throttling. ThrottleStop - TDP Throttle not lit up, nothing lit up in Limit Reasons and all 4 threads reporting the maximum 35.00 multiplier while the CPU is running at 28.0 Watts. Nice. Very nice.

    After doing a -90 mV under volt, I switched back to Prime95 Small FFTs and let that run for 15 minutes with no signs of throttling in Limit Reasons or anywhere else. Power consumption was in the 22 W to 23 W range the whole time. Thank you Lenovo for leaving the MMIO power limits and the MSR power limits unlocked and thank you for not dreaming up any bizarre throttling schemes like many of your competitors like to do. In the RW Everything pictures above, in the second part of that register where it shows 0042, the first digit is where you will find the lock bit. If this first digit is set to 8 or greater, that means the MMIO register is locked and the power limits cannot be changed. You can try changing them but they will quickly be reset to the original values. My pics show 0 for the first digit so that means this register is not locked.

    The driver ThrottleStop uses does not have access to MMIO but guess what? Intel XTU does. You can use XTU to set both power limits to 32 and it will take care of both of these registers. When using XTU, I suggest monitoring the MMIO register with RW Everything. When using Windows hybrid sleep, I found that register was usually set correctly immediately. When doing a clean boot with hybrid sleep disabled, sometimes it would take 2 minutes before the XTU Service would take care of this register. Two minutes is not a big deal but you need to be aware of this when testing. You also need to be aware that sometimes if you do not shut down properly, XTU will have a fit and it will ignore all of your settings. Now you can keep an eye on things. Hopefully this trick works on a few more of the low power U CPUs from other manufacturers.
     
    Last edited: Mar 8, 2017
  22. Chimeray

    Chimeray Notebook Consultant

    Reputations:
    0
    Messages:
    156
    Likes Received:
    8
    Trophy Points:
    31
    @unclewebb Great finds, I'll have to check tonight if mine are unlocked as well! Not very hopeful though since last time I tested it in XTU it did nothing :/

    Did you uninstall the Intel DPTF driver? Did you notice any of that weird throttling where TPL1 was reduced very slowly over time (I'm guessing not since you say no throttling whatsoever).
     
    Last edited: Mar 8, 2017
  23. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    The Lenovo E570 I am playing with did not come with the Intel DPTF driver installed. No half baked throttling schemes were installed by Lenovo or by anyone else. Nothing wrong with the low power U CPUs. The only problem seems to be how some manufacturers are setting them up.
     
  24. Chimeray

    Chimeray Notebook Consultant

    Reputations:
    0
    Messages:
    156
    Likes Received:
    8
    Trophy Points:
    31
    Alright no luck :/ I can't exceed my 15W TPL1 nor 18,75W TPL2, it must be set somewhere else and I'd like to figure out where. I've uninstalled XTU now as well to make sure there was no interference.
    I got P95 to get my temps up to 98C at one point when turbo was enabled and although those loads are unrealistic I'm not convinced I'd be able to run GPU + CPU at max frequency and get OK thermals anyways but it'd be nice to maybe bump TPL1 to 16-17W or something.

    MMIO does not get rewritten, I've set it to 25W and it stays that way although there seems to be something else that interferes. At the very least I didn't see any EDP Other warning in Limit Reasons anymore so there's that!
    Is MCHBAR the same as MMIO btw? Cos I found this post above regarding these registers but I don't know where to find them or what is meant by it.

    EDIT: I thought I had to check MSR 0x601, seems like it's MSR 0x610 instead. I couldn't find 601 but maybe 610 is there, will check in a couple of hours. Hopefully this is the bottleneck and it's not locked.

    And then you also mentioned real time PECI limits somewhere in an earlier post. I guess that's completely out of the question if this is the cause though.
     

    Attached Files:

    Last edited: Mar 9, 2017
  25. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    MCHBAR is usually located at memory location FED10000 so MCHBAR + 59A0 = FED159A0 so Dufus and I are talking about the same thing.

    The ThrottleStop Turbo Power Limits window that shows 25 25 for your power limits and 28 seconds are the values that get written to MSR 0x610 so that should be OK. That register is not locked.

    MSR 0x65C is where the Platform Power Limit is stored. On my 7500U, the long and short platform limits are both set to 90 Watts so those limits are not causing me any problems.

    Perhaps PECI is where the other 15W limit is set on your laptop. This is the deep end of the pool for me. Not sure how to get to that one or if it is possible.
     
  26. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    Wow, it works on my laptop, great and wonderful job! Thanks a lot. So is there any tools can set it automatically either by TS, some scripts or batch command? Thanks.
     
  27. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    I have made it by the command line of RWeverything and run it at boot up automatically. More details and result will be posted later.
     
  28. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    @cktducky - What laptop model do you have? Do you still have your i5-4200U?. A simple RW Everything script would be perfect. I was thinking about XTU but that is way too much baggage and long term, not reliable since XTU can randomly reset all of the overclock settings.
     
  29. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    Hi UncleWebb, yes, it is still my i5-4200U, Fujitsu T904 with my few modifications including adding back 4G support(by adding the 4G card(2 antennas & 1 GPS active antenna) with rewire the USB bus to that card, enhanced to provide more current to USB connector and change the thermal paste on CPU. The memory content is exactly same as yours so I got a try. Bingo, it works great as yours.
    RWmemory.jpg

    Also, it can give better undervoltage result. I will tell to you and explain to the others in detail below.

    1) Go to RWEverything website to download the program. Portable version is recommended since the "install" is not convenient for this purpose(I will explain at next point). You can get the latest one but it is not really important since I tried the older version without any different except there are more parameters can be set. Anyway, I will use the latest version 1.6.9 as example.(Remember to choose the right version for 32bit / 64bit platform)
    RW_main.jpg

    2) Unzip the file as 2 copies. One is for your general use purpose and the other one intend for running the batch command use only. The reason why separated them because if one Rw.exe has been run and using that same Rw.exe to run the batch command, it will not run the batch command and instead to just open back the current Rw.exe windows. You can place that 2 copies to wherever you like.
    3) In order to avoid any possible conflict due to the above problem, I renamed the Rw.exe file to another name as "Rwx.exe" for running batch command. The name is not relevant to anything and it will not affected any functionality. My setting is placed the copy at here, "C:\Windows\Read&WriteUtilityKernel", for my explanation.
    rwx_location.jpg

    4) In the picture, you can see there is an extra file called "UnlockHaswellCPU_TDPLimitBits.rw" which is the important of the batch command. Same as above, the filename is not important and you can set it whatever you like.

    5a) The content of the "UnlockHaswellCPU_TDPLimitBits.rw" is as below,

    >W32 0x00000000FED159A0 0x00DD8100
    >W32 0x00000000FED159A4 0x00428100

    5b) You can copy it and save as the file with filename you like, remember the extension is ".rw".
    6a) After that, making out the batch file to run it, as my setting, it is named as "UnlockHaswellCPU_TDPLimit.bat". It is same that the filename is not impotant. The content of the "UnlockHaswellCPU_TDPLimit.bat" is as below,

    @"C:\Windows\Read&WriteUtilityKernel\Rwx.exe" /Command="C:\Windows\Read&WriteUtilityKernel\UnlockHaswellCPU_TDPLimitBits.rw" /Min /Stdout /Nologo
    @echo Intel Haswell CPU TDP Limitation has been Unlocked!

    6b) The first line is the command line of the Rw.exe(here I renamed it as Rwx.exe due to the above reason) and the second line is just the echo message for displaying. The content of the second line is not important and you can omit(delete) it if you like.
    7) OK. The last thing is making out the Shortcut(*.lnk) of the above batch file. Right-click the batch file in the File Explorer and click "Create shortcut" in the menu.
    2fileslocation.png

    8) Right-click the new shortcut file(in my setting, it is "UnlockHaswellCPU_TDPLimit.lnk") as picture, the other settings are not important except to set "Run:" as "Minimized".
    shortcut_content.jpg

    9) Just placed that 2 files in the same folder is fine. Placed them to wherever you like.
    10) As my platform is Windows 7, you can copy the shortcut to "Startup" folder, if it is in Windows 7 platform, it should be "C:\Users\xxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" where "xxx" is the username you login to Windows in general. However, for my preference, I set it in Registry to run at startup.
    11) You should also copy that shortcut to the convenient place such as "Desktop" for you to run again after sleep(suspend-to-RAM) or hibernation. Alternatively, you can make the new task in Task Scheduler, making the Task Triggered by "On an event --> Log: System, Source: Power-Troubleshooter, Event ID: 1".

    I will talk about the findings and improvement of unlocking TDP limit at the next coming post.
     
    Last edited: Mar 15, 2017
  30. jedisurfer1

    jedisurfer1 Notebook Deity

    Reputations:
    39
    Messages:
    785
    Likes Received:
    50
    Trophy Points:
    41
    does throttlestop work with xeon e3 1505m cpu? I can't get it work on my thinkpad p50 or p70
     
  31. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26

    As the Haswell CPU design, its "GREAT" dynamic VID design is one of the pain to undervoltage. The characteristic of the CPU is as below,

    CPU in light-loading, CPU work at Turbo-Boost highest frequency(single-core), the CPU VID voltage will be in the low region by the above design so the CPU offset voltage cannot be set so low(negative value), especially GPU in heavy-loading, otherwise it will go to BSOD.
    CPU in heavy-loading, CPU work at Turbo-Boost lowest frequency(multi-core), the CPU VID voltage will be in the high region by the above design so the CPU offset voltage can be tried to set lower(negative value) to get the lowest voltage in the stable point.

    While the TDP throttle point is not yet triggered, the CPU VID is changed slightly depends on loading time to time. However, when the loading triggered the TDP limit, the CPU VID will be dramatically changed from time to time due to checking and bounding the TDP throttle limit.

    In this case, the above design will set lower in normal CPU VID voltage as well as its frequency and GPU frequency to force the CPU TDP is within limit. Actually, the fact is that the CPU itself decreases the CPU VID voltage by means of decreasing the CPU Multiplier. The CPU VID voltage will be varied by the CPU Multiplier. Anyway, the design is quite complicated and all in all, there is a chance that the CPU VID voltage will be set to very low even under 0.6V with very low frequency in order to avoid BSOD. Thus, the CPU offset voltage cannot be set so low(negative value) even it can work in normal case otherwise there is some lowest CPU voltage point will let the system go to BSOD while voltage dramatically changed too low under 0.6V.

    Now, since the TDP throttle limit is unlocked, the situation is now changed that, we only concentrate on the lowest CPU VID offset voltage while CPU in light-loading at Turbo-Boost highest frequency in order to avoid BSOD, especially GPU in heavy-loading. I used OCCT 4.4.2, "GPU 3D" to test. After that, we can test that offset voltage to run CPU in heavy-loading to check its highest voltage point is enough to CPU to run at full speed in stable point. I used Prime95 to test.

    Im my platform, for 26T Multiplier, the offset voltage setting from,
    CPU Core --> -63.5mV
    CPU Cache --> -63.5mV
    Intel GPU --> -125.0mV
    to now,
    CPU Core --> -85.0mV
    CPU Cache --> -85.0mV
    Intel GPU --> -115.2mV

    It is the lowest point I can get in my CPU otherwise it will go to BSOD or freeze or get errors count in the testing program in GPU testing.

    You can observe that the GPU need to be set higher than before since the GPU cannot run in full speed due to TDP throttle before and now the GPU is running in full speed at anytime. Thus, the GPU voltage need to be set higher for higher GPU clock speed. Great.

    Since I have several profiles, I also need to change the corresponding CPU offset voltage for different profiles with different CPU Multiplier. They are as below for reference,
    1) Multiplier 26T, (original CPU VID voltage = 0.893V)
    CPU Core --> -85.0mV
    CPU Cache --> -85.0mV
    Intel GPU --> -115.2mV
    2) Multiplier 23, (original CPU VID voltage = 0.893V)
    CPU Core --> -85.0mV
    CPU Cache --> -85.0mV
    Intel GPU --> -115.2mV
    3) Multiplier 20, (original CPU VID voltage = 0.825V)
    CPU Core --> -63.5mV
    CPU Cache --> -63.5mV
    Intel GPU --> -115.2mV
    4) Multiplier 12, (original CPU VID voltage = 0.704V)
    CPU Core --> -30.3mV
    CPU Cache --> -30.3mV
    Intel GPU --> -115.2mV

    One important point need to be mentioned is that DO NOT tick the "Power Saver" option at any time otherwise it will change Multiplier dynamically so that the CPU VID voltage will be changed as well. The result is that the CPU VID voltage - offset voltage may be too low for operation then it will freeze or BSOD!

    Belows are some pictures of testing for reference.
     

    Attached Files:

    Last edited: Mar 11, 2017
    unclewebb and t456 like this.
  32. Hans de Paula

    Hans de Paula Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
    @cktducky

    you try use VCCIN?
    like mine:
    [​IMG]

    i have a i5 4210u, and here i can set it on 2.3047;
    it make less Watts usage, less temp, anda less VID variation.
    have some discusion about this arroud 257 page.

    -------------------------------------------------------------

    anyway, tanks for your the script, where PL1 stop trottle.
    now i not have time for tests, but i will.
     
  33. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    Hi Hans, where is the topic talking about VCCIN in Page 257? No, I didn't set VCCIN so far since it is not relevant to CPU VID I think.
     
  34. KAvradaliev

    KAvradaliev Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
    Hi to everybody. I have one problem, and any help will be welcome. I tick the Lock and press apply, and now the whole row i gray, and i don't know how to fix that.
    [​IMG]
    PP0 limit was 1000, I enter 35 before hit Apply.
    MB is Gigabyte B85N Phoenix miniITX, current CPU is i3-4170, but I plan to upgrade to i5-4570 and restrict TDP, because the case is very small.
     
  35. jedisurfer1

    jedisurfer1 Notebook Deity

    Reputations:
    39
    Messages:
    785
    Likes Received:
    50
    Trophy Points:
    41
    I can't get it to work with a Xeon e3 in my thinkpad p50. Anyone get it working with a mobile xeon?
     
  36. Hans de Paula

    Hans de Paula Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
  37. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    In theory it should work. What version of ThrottleStop are you using and can you explain, "can't get it to work"? Does it start up at all, are there any error messages or just nothing?

    @cktducky - Thanks for your informative posts. I can't wait to write my own RW Everything script to get both power limits up to where they should be. I might add this directly to ThrottleStop so it will take care of itself when a person resumes from hibernate or stand by. Using RW Everything as a helper program might allow me to come up with a few more tricks.

    Rule #1. If you do not know what something does, do not click on it. :)

    To reset the Lock feature, exit ThrottleStop, delete the ThrottleStop.INI configuration file, shut down your computer. Restart it, run ThrottleStop and let ThrottleStop create a new ThrottleStop.INI configuration file for you. Make sure you do not do a hybrid shutdown or this might not reset your CPU. You need to do a full shutdown. Here is how from wintips.org

    http://www.wintips.org/full-shutdown-windows-10-8-1-8/
     
  38. jedisurfer1

    jedisurfer1 Notebook Deity

    Reputations:
    39
    Messages:
    785
    Likes Received:
    50
    Trophy Points:
    41
    It senses the correct cpu and it reads the mhz correctly. Basically since the core 2 duo I've used the 4 steps and each step limits the max speed. On my Xeon mobile if I set 8, 14, 20, 28 multipier as the max it will ramp up to 2800mhz every time I start any video. Voltage offset doesn't work either. Basically any setting I apply doesn't work. This is for Win10 run as admin. I've used this, rmclock, or intel xtu since the core 2 duo days so I'm not totally green about such things.
     
  39. Che0063

    Che0063 Notebook Evangelist

    Reputations:
    341
    Messages:
    368
    Likes Received:
    478
    Trophy Points:
    76
    @unclewebb

    The i7-7500U must be incredibly efficient. Here I am, with the i7-6500U with Prime95


    View attachment 143112

    I can't get the voltage any lower without it crashing. Maybe it works for the lower clock speeds, but certainly not when turboboosting


    BTW, I am totally lost a sea with this memory editing thing with RW-Everything. I already used it to access the EC before to control my fans, but now...

    View attachment 143114


    EDIT: Nvm, I figured it out. 32-bit byte required

    But I can't see any of the registers you pointed out. A few of them are actually quite similar.

    upload_2017-3-12_16-18-2.png
     

    Attached Files:

    Last edited: Mar 12, 2017
  40. Che0063

    Che0063 Notebook Evangelist

    Reputations:
    341
    Messages:
    368
    Likes Received:
    478
    Trophy Points:
    76

    My laptop is an Acer Aspire V Nitro VN7-572G-75AJ (Not Black Edition)

    Intel Core i7-6500U
    Intel HD Graphics 520
    Nvidia GeForce 945M
    8GB DDR4 2133MHz RAM

    Using AIDA64 Stress TEsting, if I put load to the CPU, iGPU, and dGPU together, temperatures have gone up to 90C, with the CPU at 15W. the GeForce GPU is only at 80C

    It is stable at that temperature, mostly in the high 80s but there is no thermal throttling, just power throttling.

    This is strange to me. How do your CPUs heat up in stress testing? My i7 ramps up to 70-75C, rising to 80C in a few minutes. Idle temperatures are 40-45 with an ambient temperature of 25-30C. I have only 1 fan to dissipate the heat of both the 6500U and 945M

    I've owned 4 acer laptops now, and 1 ASUS laptop. None of the have ever throttled from thermal point of view.
     
  41. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
  42. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    Thanks UncleWebb. It is great!
     
  43. Mr. Fox

    Mr. Fox BGA Filth-Hating Elitist

    Reputations:
    37,213
    Messages:
    39,333
    Likes Received:
    70,628
    Trophy Points:
    931
    Here's my latest ThrottleStop demo video for the EUROCOM Tornado F5 with 7700K...

     
    DM g, Ashtrix, Georgel and 2 others like this.
  44. KAvradaliev

    KAvradaliev Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
    Thanks for the replay, I'll try that later. I found the .ini, and deleted it, but w/o restart it do not reset the settings, and try restart, but apparently
    when the .ini is there, also don't reset the settings.
     
  45. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    Please remember exit TS first and delete the .ini file after that. The lock bit is only reset after the system is reset.
     
  46. Chimeray

    Chimeray Notebook Consultant

    Reputations:
    0
    Messages:
    156
    Likes Received:
    8
    Trophy Points:
    31
    MSR 0x610 looks totally OK, which is to be expected since TS reports the same.
    MSR 0x65C is 0x00DD0000 so I assume DD is the value and thus 221/8=27.625W . Is that correct?

    Can I expect a new PECI from a BIOS update if HP comes with BIOS updates in the future? Or is that something completely independent and I'm stuck with it forever?
    Either way, I guess that's the end of the line for me! Was fun and very interesting though, I didn't know much about CPU's before this so thanks a lot for all of the information over the last couple of weeks!

    The only thing I can give back to the community for anyone that's got the latest HP Spectre x360 13":
    Undervolt, and reduce power by disabling Turbo (or go as high as 30 multiplier on full load) and limit the GPU frequency if you don't want to go over the 15W limit.
    Download RW everything portable, create a shortcut, right click edit properties. Change the Target to this, make sure to change the path to wherever you placed RW everything:
    C:\Users\[myname]\Desktop\RwPortableX64V1.6.9\Win64\Portable\Rw.exe /command="w 0xFED15994 0x10;rwexit"
    Explanation:
    0x 10 The 10 is hex for 16 decimal. 16x50Mhz = 800Mhz. It's possible to go up to 850-900 depending on CPU load so feel free to edit if you want but I found it to be adequate for the indie gaming I do.
    Cheers!
     
  47. unclewebb

    unclewebb ThrottleStop Author

    Reputations:
    7,815
    Messages:
    6,414
    Likes Received:
    6,728
    Trophy Points:
    681
    Do you know that some CPUs need to have the CPU Offset voltage and the CPU Cache Offset voltage set equally? If you only set the CPU Offset voltage alone, it might not do anything. On some CPUs you might be able to set the CPU cache offset lower than the core offset so -100 mV on the core and -130 mV for the cache might work just fine.

    In the FIVR window, what is your non turbo ratio set to? If you are trying to use the Set Multiplier feature, the Non Turbo Ratio should be set to zero.

    It is also possible that your CPU has Speed Shift enabled by default. A screenshot of ThrottleStop will show that. If Speed Shift is enabled, the Set Multiplier feature will not work anymore but you can still fully control the multiplier. Speed Shift gives you more control so on a newer Skylake or Kaby Lake based CPU, I recommend Speed Shift.

    Post some pics of ThrottleStop. Much easier to solve a problem if I have something to see.
     
    pressing likes this.
  48. 0asjd0sajd

    0asjd0sajd Newbie

    Reputations:
    0
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    5
    hello
    quick question regarding non-k haswell cpu
    is it possible to enable the single core turbo (aka max turbo) for all cores?


    ps: thank you, unclewebb for throttlestop and this great informative thread
     
  49. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    I think it should be.. No..
     
  50. cktducky

    cktducky Notebook Geek

    Reputations:
    9
    Messages:
    84
    Likes Received:
    60
    Trophy Points:
    26
    After I tested deeply, the CPU VID cannot be so low and it is just -75mV now. The high VCCIN voltage SEEMS to be have some effect in stabilization for lower CPU VID voltage BUT I confirmed that after setting this high voltage, it will be hanged up or BSOD during loading Windows after the system reset. That is there is something to load or run that it is not happy with the high VCCIN voltage. Thus, I make it back to default now.

    Hi UncleWebb, I want to ask I tried to run more things to get higher TDP for testing. When it reached higher than 28W, it will sometimes trigger GPU Power or PL2 in GPU row in "Limit Reasons". Is there any register to set higher throttle trigger value of GPU?
    BTW, PL1 and PL2 I set both are 32 in TPL. Is the real TDP limit is about 0.8308*32=26.5856W? Thanks.
    29W.jpg
    TPL.jpg
     
    Last edited: Mar 13, 2017
← Previous pageNext page →