I noticed that, on my ASUS N550JV, my load average was always above 1.
I'm using Devuan Beowulf with a 4.19.0 kernel.
After some digging I found that the culprit was a kworker related to ACPI.
empire# pidstat 10
Linux 4.19.0-5-amd64 (empire) 30/08/2019 _x86_64_ (8 CPU)
12:34:18 UID PID %usr %system %guest %wait %CPU CPU Command
12:34:28 0 3108 0,00 0,10 0,00 0,00 0,10 0 irq/38-nvidia
12:34:28 100 3201 0,10 0,00 0,00 0,00 0,10 5 dbus-daemon
12:34:28 0 14563 0,00 67,33 0,00 0,30 67,33 0 kworker/0:2-kacpi_notify
12:34:28 0 18056 0,40 0,60 0,00 0,20 1,00 4 Xorg
12:34:28 1000 18152 0,10 0,00 0,00 0,00 0,10 1 i3bar
12:34:28 1000 19570 0,20 0,00 0,00 0,00 0,20 4 chromium
12:34:28 1000 19618 0,00 0,10 0,00 0,00 0,10 5 chromium
12:34:28 1000 19857 0,10 0,00 0,00 0,00 0,10 3 x-terminal-emul
12:34:28 0 20254 0,00 0,10 0,00 0,00 0,10 5 kworker/5:0-events_freezable
12:34:28 1000 22871 1,70 0,70 0,00 0,10 2,40 2 telegram-deskto
12:34:28 0 23314 0,00 0,10 0,00 0,10 0,10 5 kworker/5:3-pm
12:34:28 0 23899 0,00 0,10 0,00 0,00 0,10 6 pidstat
You see that kworker/0:2-kacpi_notify
at 67%?
So I dug into what may cause this, and stumbled upon this question on Unix & Linux SE.
So digging inside /sys
I got:
empire# grep . -r /sys/firmware/acpi/interrupts | grep -v " 0"
/sys/firmware/acpi/interrupts/gpe13: 3646789 STS enabled unmasked
/sys/firmware/acpi/interrupts/sci: 3646793
/sys/firmware/acpi/interrupts/gpe_all: 3646799
/sys/firmware/acpi/interrupts/gpe19: 5 EN enabled unmasked
If I echo disable > /sys/firmware/acpi/interrupts/sci
and the same for gpe13
the load average drops off to a reasonable number.
My questions are:
- is this the best way to fix it? Are there "cleaner" alternatives?
- are there any negative side effects?