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.
-
top
reports a large portion of CPU wating on IO. -
sudo iotop
reportsjbd2
using lots of disk IO. -
The command
ls -lhS /var/log/*log | head
shows 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.log
shows 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.log
as 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/grub
to add thepci=nomsi
parameter to theGRUB_CMDLINE_LINUX_DEFAULT
directive. -
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=noaer
orpci=mmconf
.