Add a workaround for framework 13 firmware bug causing 100% usage on a single core.

ref: https://community.frame.work/t/tracking-amd-small-group-of-kworkers-keeping-cpu-0-busy-after-suspend-resume-cycle-s/45002
This commit is contained in:
Tom Alexander
2024-06-20 19:31:49 -04:00
parent d3c397acf0
commit 78ea5dc244
4 changed files with 57 additions and 3 deletions

View File

@@ -0,0 +1,10 @@
[Unit]
Description=Disable gpe10 interrupt on boot
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "echo disable > /sys/firmware/acpi/interrupts/gpe10"
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,13 @@
[Unit]
Description=Enable gpe10 interrupt for sleep
Before=sleep.target
StopWhenUnneeded=true
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "echo enable > /sys/firmware/acpi/interrupts/gpe10"
ExecStop=/bin/sh -c "echo disable > /sys/firmware/acpi/interrupts/gpe10"
[Install]
WantedBy=sleep.target

View File

@@ -43,3 +43,25 @@
# amd_pstate=active :: Same as passive except we can set the energy performance preference (EPP) to suggest how much we prefer performance or energy efficiency.
# amd_pstate=guided :: Same as passive except we can set upper and lower frequency bounds.
"org.zfsbootmenu:commandline": "rw quiet amdgpu.abmlevel=3 pcie_aspm=force pcie_aspm.policy=powersupersave nowatchdog amd_pstate=passive"
- name: Install Configuration
copy:
src: "files/{{ item.src }}"
dest: "{{ item.dest }}"
mode: 0600
owner: root
group: wheel
loop:
- src: gpe10-boot.service
dest: /etc/systemd/system/gpe10-boot.service
- src: gpe10-sleep.service
dest: /etc/systemd/system/gpe10-sleep.service
- name: Enable services
systemd:
enabled: yes
name: "{{ item }}"
daemon_reload: yes
loop:
- gpe10-boot.service
- gpe10-sleep.service