I noticed a severe drop in performance after updating to kernel 4.8.1 a couple of weeks ago. I didn't have the time to investigate and so rolled back to 4.7.7. I thought I'd retry with 4.8.4. Same issue unfortunately. /proc/cpuinfo never reports CPU frequency above 800 MHz (except within the first couple minutes of use). I'm running on an i7-4650U with intel_iommu=off (due to boot issues).
No doesn't help. I don't think it has to do with the GPU. Without intel_iommu=off I see a lot of:
DMAR: DRHD: handling fault status reg 2
DMAR: [DMA Write] Request device [04:00.1] fault addr fffe0000 [fault reason 02] Present bit in context entry is clear
in and amongst output related to ata1. Pretty sure it has something to do with the SATA controller.
It seems to be throttling the CPU (and holding it in this state) after ~1 minute of use under moderate load. Before that performance is as expected. It's really very odd since I was running 4.7.7 without any issues.
That did it! After:
- tlp 0.9-8-1-x86_64 is removed.
- solus-hardware-config 6-9-1-x86_64 is removed.
- thermald 1.5.3-2-1-x86_64 is removed.
I have a functioning system again. I'm still not too sure what the issue was however, and I feel that removing thermald might be a questionable. Thoughts?
So now you need to try with each package to verify who is the evil bastid doing this.
Reboot between each step:
- So try with tlp installed, Reboot, check performance.
- Remove tlp, install thermald, Reboot, check performance.
- Install solus-hardware-config (brings in thermald) and install tlp too. Reboot, check performance.
My money right now is in tlp but we'll see. If you discover which one before doing the other steps, just stop there and let me know
Could this be related to "BD PROCHOT"? From what I've heard, it seems that is the cause of unnecessary throttling in some computers.
On Windows, disabling the feature with ThrottleStop is the usual recommendation for this sort of problem it seems, but I don't know of anything for Linux exactly.
As for the thermald package; masking the systemd service could work too right? At boot after the encryption passphrase is entered, I see a brief mention of CPU throttling and then returning to normal speed even after masking thermald. However, from within the OS, I don't seem to see any throttling messages in dmesg (Guild Wars 2 in Wine would trigger it pretty quickly in the past).
That's an interesting idea. Apparently one can use msr-tools (specifically wrmsr on address 0x1FC) to disable throttling caused by BD PROCHOT. From what I understand, if 'sudo rdmsr --decimal 0x1FC' reports an odd integer, then the CPU is throttled (unsure about this). Subtracting 1 from this value and writing to 0x1FC (i.e. 'sudo wrmsr 0x1FC <value-1>') has been reported to work. ThrottleStop does the same thing (modifies MSR 0x1FC bit). Any thoughts? Worth a go? I'm still running without thermald tbh. I don't do anything intensive on this machine, so heat isn't a huge concern.