Hello!
I have been tinkering with Throttlestop for the past 2 weeks on my recently bought Lenovo Legion 7i with i9-12900HX. Throughout this time I read a lot of topics and guides, and I think by now I have a general idea of what's going on and managed to achieve some nice results with reducing temperatures and power draw and increasing the sustained clocks.
TLDR at the bottom.
I've also experimented with disabling the E cores from the bios, as although this might be pointless or even detrimental in some cases on a desktop PC, the situation might be different in a laptop. My reasoning is that given the limited power budget of the laptop during gaming (where the GPU can draw up to 175W), the shared vapor chamber and thus limited thermal headroom, disabling the E cores might help free up power for the P cores, and allow them to sustain higher clocks within the same temperature range.
Anyway, I started experimenting with undervolting in Throttlestop (with P+E cores) and initially faced the immediate crash when P cache is adjusted, which is resolved by dropping the max cache ratio to 36 (discussed in various topics online). I believe this happens because the max turbo ratio for the E cores is 36. Or at least it makes sense. The moment the cache ratio is set above 36 it crashes. It's interesting because if I have the undervolted profile with cache ratio set to 36 selected and active, and then try switching to a completely default one where the max cache ratio is 46 (my battery profile with 0 offsets), the crash is instant. However, if I also set the cache ratio of the battery profile to 36, it switches without issues and the undervolt is removed, working as expected.
Then, after lots of testing and a few BSODs, I reached a stable undervolt of -110mV on the P cores and -85mV on the P cache. I haven't changed the system agent, E cache or the rest, as it doesn't seem it will bring me any benefit, but it might cause instability. With this undervolt, the CPU is perfectly stable in all benchmarks, Prime95 small FFTs, TS Bench, games, etc.
..However, the problem comes when the laptop tries to go to sleep. Sometimes it reboots immediately, sometimes it goes to sleep and crashes upon waking up, sometimes it manages to wake up once, but crashes after I put it to sleep again. It can never go to sleep, wake up, and then go to sleep again without crashing. The BSODs I get are various with different kind of bugcheck codes, there isn't any model to them, except that most often the culprit is said to be a driver of some sort, but it is a random one each time.
I've tried enabling the "sleed defaults voltage and cache ratio" options in Throttlestop, but they don't resolve the issue. I've tried with each one selected on it's own and both selected at the same time.
I tried disabling the hybernation via CMD, using the command powercfg.exe /h off, just for good measure.
I tried setting a minimal undervolt of -5mV per P core and P cache, to see whether the problem is the undervolt being too aggressive - it still crashes.
I even tried with the battery profile (no undervolt) selected, just with a max cache ratio of 36 (as if it's not 36 there would be no chance for an undervolt) - it still crashes.
Therefore, to me it seems that the crash during/after sleep has nothing to do with the actual undervolt, but with the cache ratio. And I can't manage to resolve it no matter what I try.
And the problem manifests only when the E cores are enabled.
With them disabled, I can do whatever I want with the P cores, even leave the max cache ratio at 46 and as long as the undervolt is stable, there are no crashes under any circumstances. The good thing is that I'm extremely happy with how the PC runs with the P cores only, gaming is perfect, general usage is without any hiccups and the benchmark scores are much higher than stock. With only the P cores, the undervolt mentioned above (-110mV P cores and -85mV P cache), I can sustain 4.2GHz on all cores with 3.8GHz ring clock for 10 minutes in Cinebench R23, with temp maxing out at 93 degrees and with score around 17300 pts. I've set my prochot to 90C to avoid spikes above 92/3 C, and even with throttling at 90C I can mostly hold the 4.2GHz on all cores for as long as it needs, at ~105-108W, and consistently hit 17000 pts in 10 minute throttling tests.
With the E cores active I am limited to 3.6GHz ring, and I can only sustain the P cores 3.8-9GHz and E cores 3.1GHz at for a 10 minute throttle test in CB R23 with prochot set to 90C, but the score is 21700 pts, which is definitely a very nice improvement compared to stock, in all aspects. One run shows 23500 pts. At stock settings the sustained clocks are around 3.7GHz for P cores and 2.8-9GHz for E cores, but with prochot to 97C, and the 10 minute result is around 20000 pts. The highest one run score I've seen at stock settings is 21300.
I've attached two screenshots from just now - currently only the P cores are active. I've left checked the options to reset cache ratio and voltage on sleep, as everything seems to work perfectly this way.
Another thing worth mentioning is that I've created two high performance profiles - core parking is disabled in both as it causes stutters in some games. The difference between the two is that one allows Speed Shift to drop the clocks to below the base speed (but not too much), the other keeps them at max frequency. I have to say I don't see any difference in real world performance, so I just keep it at "high performance efficient", the former. The problem I'm describing happens with every power plan, Balanced included (where the core parking is enabled).
TLDR: PC crashes when going to/waking from sleep, only when E cores are active and Throttlestop is ON (regardless of whether an undervolt is applied or not), with an adjusted cache ratio of 36 - the maximum allowed if P cache is to be undervolted. Can't get it to not crash no matter what I do, but it's working perfectly fine with just the P cores active. It's also stable and working fine under any load or idle with the E cores active - the problem is only related to the sleep state.
I'll be very happy if somebody could give me some advice.
Thanks and apologies for the long post.
I have been tinkering with Throttlestop for the past 2 weeks on my recently bought Lenovo Legion 7i with i9-12900HX. Throughout this time I read a lot of topics and guides, and I think by now I have a general idea of what's going on and managed to achieve some nice results with reducing temperatures and power draw and increasing the sustained clocks.
TLDR at the bottom.
I've also experimented with disabling the E cores from the bios, as although this might be pointless or even detrimental in some cases on a desktop PC, the situation might be different in a laptop. My reasoning is that given the limited power budget of the laptop during gaming (where the GPU can draw up to 175W), the shared vapor chamber and thus limited thermal headroom, disabling the E cores might help free up power for the P cores, and allow them to sustain higher clocks within the same temperature range.
Anyway, I started experimenting with undervolting in Throttlestop (with P+E cores) and initially faced the immediate crash when P cache is adjusted, which is resolved by dropping the max cache ratio to 36 (discussed in various topics online). I believe this happens because the max turbo ratio for the E cores is 36. Or at least it makes sense. The moment the cache ratio is set above 36 it crashes. It's interesting because if I have the undervolted profile with cache ratio set to 36 selected and active, and then try switching to a completely default one where the max cache ratio is 46 (my battery profile with 0 offsets), the crash is instant. However, if I also set the cache ratio of the battery profile to 36, it switches without issues and the undervolt is removed, working as expected.
Then, after lots of testing and a few BSODs, I reached a stable undervolt of -110mV on the P cores and -85mV on the P cache. I haven't changed the system agent, E cache or the rest, as it doesn't seem it will bring me any benefit, but it might cause instability. With this undervolt, the CPU is perfectly stable in all benchmarks, Prime95 small FFTs, TS Bench, games, etc.
..However, the problem comes when the laptop tries to go to sleep. Sometimes it reboots immediately, sometimes it goes to sleep and crashes upon waking up, sometimes it manages to wake up once, but crashes after I put it to sleep again. It can never go to sleep, wake up, and then go to sleep again without crashing. The BSODs I get are various with different kind of bugcheck codes, there isn't any model to them, except that most often the culprit is said to be a driver of some sort, but it is a random one each time.
I've tried enabling the "sleed defaults voltage and cache ratio" options in Throttlestop, but they don't resolve the issue. I've tried with each one selected on it's own and both selected at the same time.
I tried disabling the hybernation via CMD, using the command powercfg.exe /h off, just for good measure.
I tried setting a minimal undervolt of -5mV per P core and P cache, to see whether the problem is the undervolt being too aggressive - it still crashes.
I even tried with the battery profile (no undervolt) selected, just with a max cache ratio of 36 (as if it's not 36 there would be no chance for an undervolt) - it still crashes.
Therefore, to me it seems that the crash during/after sleep has nothing to do with the actual undervolt, but with the cache ratio. And I can't manage to resolve it no matter what I try.
And the problem manifests only when the E cores are enabled.
With them disabled, I can do whatever I want with the P cores, even leave the max cache ratio at 46 and as long as the undervolt is stable, there are no crashes under any circumstances. The good thing is that I'm extremely happy with how the PC runs with the P cores only, gaming is perfect, general usage is without any hiccups and the benchmark scores are much higher than stock. With only the P cores, the undervolt mentioned above (-110mV P cores and -85mV P cache), I can sustain 4.2GHz on all cores with 3.8GHz ring clock for 10 minutes in Cinebench R23, with temp maxing out at 93 degrees and with score around 17300 pts. I've set my prochot to 90C to avoid spikes above 92/3 C, and even with throttling at 90C I can mostly hold the 4.2GHz on all cores for as long as it needs, at ~105-108W, and consistently hit 17000 pts in 10 minute throttling tests.
With the E cores active I am limited to 3.6GHz ring, and I can only sustain the P cores 3.8-9GHz and E cores 3.1GHz at for a 10 minute throttle test in CB R23 with prochot set to 90C, but the score is 21700 pts, which is definitely a very nice improvement compared to stock, in all aspects. One run shows 23500 pts. At stock settings the sustained clocks are around 3.7GHz for P cores and 2.8-9GHz for E cores, but with prochot to 97C, and the 10 minute result is around 20000 pts. The highest one run score I've seen at stock settings is 21300.
I've attached two screenshots from just now - currently only the P cores are active. I've left checked the options to reset cache ratio and voltage on sleep, as everything seems to work perfectly this way.
Another thing worth mentioning is that I've created two high performance profiles - core parking is disabled in both as it causes stutters in some games. The difference between the two is that one allows Speed Shift to drop the clocks to below the base speed (but not too much), the other keeps them at max frequency. I have to say I don't see any difference in real world performance, so I just keep it at "high performance efficient", the former. The problem I'm describing happens with every power plan, Balanced included (where the core parking is enabled).
TLDR: PC crashes when going to/waking from sleep, only when E cores are active and Throttlestop is ON (regardless of whether an undervolt is applied or not), with an adjusted cache ratio of 36 - the maximum allowed if P cache is to be undervolted. Can't get it to not crash no matter what I do, but it's working perfectly fine with just the P cores active. It's also stable and working fine under any load or idle with the E cores active - the problem is only related to the sleep state.
I'll be very happy if somebody could give me some advice.
Thanks and apologies for the long post.
Attachments
Last edited: