You are not logged in.
Conteúdo do Post (em inglês, que é o padrão do fórum do Arch):
Problem:
I experienced a severe CPU usage bottleneck caused by irq/122-aerdrv constantly firing millions of interrupts (AER - Advanced Error Reporting).
Disabling the port via unbind (/sys/bus/pci/drivers/pcieport/unbind) stopped the CPU overload, but it completely turned off my Wi-Fi card since it shares the same PCIe bridge. Adding pci=noaer to the kernel parameters did not work/apply properly due to bootloader/EFI overrides.
Solution:
Instead of disabling the entire PCIe port or toggling kernel parameters, you can mute only the PCIe error reporting register directly on the hardware level using setpci. This keeps the Wi-Fi interface fully operational while stopping the interrupt storm.
Step 1: Identify the offending PCIe port
Check which device is triggering the IRQ storm:
Bash
grep -i "aerdrv" /proc/interrupts
In my case, it was triggering millions of interrupts on device 0000:00:1d.0.
Step 2: Silence the AER error register
Run setpci targeted directly at the PCIe Device Control register of that port:
Bash
sudo setpci -s 0000:00:1d.0 CAP_EXP+0x08.w=0x0000
CPU usage dropped immediately back to normal, and Wi-Fi (wlo1) remained fully connected.
Step 3: Make it persistent across reboots via systemd
Create a systemd oneshot service:
Bash
sudo systemctl edit --force --full disable-aer.service
Paste the following configuration:
Ini, TOML
[Unit]
Description=Silence PCIe AER error reporting for Wi-Fi bridge
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/bin/setpci -s 0000:00:1d.0 CAP_EXP+0x08.w=0x0000
[Install]
WantedBy=multi-user.target
Enable the service:
Bash
sudo systemctl enable disable-aer.service
Last edited by im-dat (Today 08:12:31)
Offline