You are not logged in.

#1 Today 08:10:13

im-dat
Member
Registered: 2026-06-05
Posts: 1

[SOLVED] High CPU usage by irq/aerdrv on Wi-Fi PCIe port

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

Board footer

Powered by FluxBB