Skip to content

Instantly share code, notes, and snippets.

@StefanoBelli
Last active October 29, 2024 07:21
Show Gist options
  • Save StefanoBelli/0aab46b858a797c4eedb90e8799dffa2 to your computer and use it in GitHub Desktop.
Save StefanoBelli/0aab46b858a797c4eedb90e8799dffa2 to your computer and use it in GitHub Desktop.
Temporary fix for ACPI (GPE iinterrupts) failure , disable GPE6f interrupts, probably motherboard faulty ACPI implementation (reflash/update BIOS) [[!!You should take action!!]]. Install this in /usr/lib/systemd/system and run systemctl enable disable_gpe6F
[Unit]
Description=Disable GPE6F interrupts
[Service]
Type=oneshot
ExecStart=/bin/bash -c "echo disable > /sys/firmware/acpi/interrupts/gpe6F"
[Install]
WantedBy=multi-user.target
@StefanoBelli
Copy link
Author

StefanoBelli commented Dec 16, 2016

Definitively solved

I am using an Asrock B150M PRO4

Solved this issue with ACPI GPE (GPE stands for General Purpose Event) 0x6F interrupts just flashing the latest BIOS/UEFI version.

I reccomend trying this way as my previous BIOS/UEFI version was too old and probably something mismatched with the Linux kernel.

BE CAREFUL WHILE UPDATING THE BIOS/UEFI , IF EVERYTHING IS WORKING FINE, NO REASON TO UPDATE THE BIOS/UEFI

After you update the BIOS/UEFI, you should disable this systemd service, reboot the system, check dmesg, see the content of /sys/firmware/acpi/interrupts/gpe6F

you should get:

 0 enabled

You can read this as:

 <number of interrupts recieved from ACPI> [enabled|disabled]

If the number of interrupts received from ACPI is 0, and the operating system is not blocking interrupts (so, it is enabled), everything is fine, you fix'd 👍

What to do

  • Disable service:
# systemctl disable disable_gpe6F
  • Reboot the system:
# reboot
  • After the system rebooted, check that the service is not loaded
$ systemctl status disable_gpe6F
  • run dmesg to see last kernel messages
$ dmesg

if no ACPI ERROR or ACPI EXCEPTION or ACPI FAILURE, then everything is fine

  • check if interrupts are properly enabled by the kernel
$ cat /sys/firmware/acpi/interrupts/gpe6F
    0  enabled
  • now you should check CPU average usage, and single cores usage. If everything fine, CPU usage should be very low (depending on what you are doing), if it is still under high load, be sure that is the user (you) who are using the resources, and not the kernel

Now your system is working :) Bye

@tgharib
Copy link

tgharib commented Jul 3, 2021

Additional helpful note for potential future readers: if BIOS update does not solve issue, you can either keep this systemd service or add acpi_mask_gpe=0x6F as kernel boot parameter.

@aLluveras
Copy link

In my experience, this issue is reflected in 20-30% of CPU usage for the Linux kworker process or for the System process on a Windows machine.
Also, this approach is useful for any interrupts that might be hogging your CPU, use grep . -r /sys/firmware/acpi/interrupts/ to find out.

@magnum61
Copy link

magnum61 commented Oct 29, 2024

After 8 years the problem obviously still persist on some devices.
I've updated the BIOS on my HP ZBook G6 recently and now the Arch Linux installation is running in this trouble with 6F.

I've read somewhere it has something to do with a connected USB device which is missing and the 6F is waiting for it, causing the CPU load

Tried to disable it via GRUB, but that is not working in 50% of the time after reboot. Sometimes works, sometimes not.
Installed it now as a service, let's see how this goes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment