Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!
Note: You might have to do this every time you upgrade your Linux kernel!!
Symptoms
Below are step-by-step symptoms from superficial to root causes.
-
Your Linux system becomes very slow even if the system has enough CPU and memory resources.
-
topreports a large portion of CPU wating on IO. -
sudo iotopreportsjbd2using lots of disk IO. -
The command
ls -lhS /var/log/*log | headshows a few obviously large log files. Generally speaking, a log file in MBs is considered large. -
A large log file shows frequent error/warning messages. For example, The kernel log file
/var/log/kern.logshows the following error message frequently.PCIe-Bus-Error:-severity=Corrected,-type=Physical-Layer
A faster alternative way to check whether your machine is experiencing this issue
is to directly search for the keyword PCIe-Bus-Error in log files.
ls /var/log/*log | xargs grep PCI-Bus-Error
If you see lots of occurences of the following line, then your machine is likely experiencing the issue.
PCIe-Bus-Error:-severity=Corrected,-type=Physical-Layer
Solution
-
Empty large log files. Taking
/var/log/kern.logas an example, you can empty it using the following command. Notice that you'd better NOT remove log files.cat /dev/null | sudo tee /var/log/kern.log -
Edit the GRUB file
/etc/default/grubto add thepci=nomsiparameter to theGRUB_CMDLINE_LINUX_DEFAULTdirective. -
Update the GRUB.
sudo update-grub -
If the above steps does not fix the issue, try repeating steps 2-3 with other parameters, e.g.,
pci=noaerorpci=mmconf.