jaromeyer / XPS9570-Catalina

macOS Big Sur for the Dell XPS 15 9570 using the OpenCore bootloader.
195 stars 22 forks source link

SpeedStep not working properly; periodically stuck at 800MHz #25

Closed mr-prez closed 4 years ago

mr-prez commented 4 years ago

I have the i5 8300H variant with the 4k screen. I noticed that during normal use, the laptop will randomly lagging really badly, even if the CPU isn't at 100% usage. I haven't tied it to any specific program or anything like that. But whenever it does happen, the CPU is stuck at 800Mhz. I'm using iStat Menu to verify the frequency. The weird thing is that I've set 1200/1300 as the low frequency mode and the Performance Preference with the One Key CPU friend.

After a little while, SpeedStep will start working properly, with the frequency jumping around like normal. But the problem will inevitably come back later in my session. I'm assuming that this may be a configuration issue given that the issue happens regardless of what I set with CpuFriend. Perhaps I need to generate config files specifically for the 8300H variant?

Thermals shouldn't be an issue either. Or hopefully not. I did recently apply some Thermal Grizzly Cryonaut. However, I manually spread the paste evenly before reapplying the heatsink and I sit at about 40c when idle. All my cores are within 3 or so degrees of each-other at all times and I can periodically boost up to 3.9Ghz. Again, the 800Mhz issue can happen even if the CPU isn't at 100% load. Any insight would be greatly appreciated.

jaromeyer commented 4 years ago

CPUFriendDataProvider should be the only thing you need to change for the 8300H. Are you sure you are installing the generated kext? It should overwrite the existing one in EFI/OC/Kexts. Other components linked to random lags are the touchscreen and unsupported WiFi cards. Have you tried disabling the touchscreen? And what WiFi card are you using?

mr-prez commented 4 years ago

Yes, I replaced both the CPUFriend.kext and CPUFriendDataProvider.kext in EFI/OC/Kexts. I have the touchscreen disabled both in BIOS and replaced the SSDT-TPDX.aml. Maybe disabling it in both places is causing an issue? For wifi, I'm using the DW1830. I attempted to fix the issue by disabling SpeedStep in bios but that's being ignored as well.

attilagyorffy commented 4 years ago

@mr-prez just a random thought but have you also regenerated the kext cache after replacing them in /EFI/OC/Kexts?

mr-prez commented 4 years ago

@attilagyorffy Wow, no. I'm used to the manual kext placement with Clover installs and just didn't make any connection to rebuilding kext cache since it's not in its "normal" place. That actually may be it because I just upgraded to the six core version of this laptop and with additional thermal pads its running cooler than my old 4 core version..but still has the 800mhz issue, albeit very infrequently now. I'll rebuild and report back.

mr-prez commented 4 years ago

So I've concluded that this issue has absolutely nothing to do with MacOS, configuration settings, etc. It's all due to Dell's shoddy thermal design. The VRMs overheat which leads to power throttling; limiting voltage and thus clock speed. This is not CPU temperature throttling.

I mostly solved this by using guides like this and this. The one major addition I made (and I think made the most difference) was putting thermal pads directly on the VRMs (the squarish silver ones) and making them long enough to cover said VRMs and touch the black heat pipes.

I rarely but still experience this throttling, but overall temperatures are much lower while the fans always run slower and quieter. Sometimes the fans aren't even on.

jaromeyer commented 4 years ago

nice that you were able to find the issue and fix it. Still, it is very weird that this was happening for you. I re-pasted both CPU and GPU and I'm running quite a strong undervolt. Maybe mine was throttling too before undervolting? Don't really remember lol. If you want I can give you more info about VoltageShift and how to make it apply the settings after waking from sleep. Took me quite a while to figure out.