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
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
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

View File

@ -7,6 +7,12 @@ CPUTYPE?=x86-64-v4
CPUTYPE?=znver4
.endif
OPTIONS_SET+=OPTIMIZED_CFLAGS
# qemu uses STATIC_LINK instead of the more standard flag of STATIC
OPTIONS_SET+=STATIC_LINK
# Disable static for subversion because /usr/local/lib/libutf8proc.a not found despite utf8proc being installed
#
# Disable static for netpbm because "ld: error: undefined symbol: libdeflate_free_compressor" which is "referenced by tif_zip.o:(ZIPVSetField) in archive /usr/local/lib/libtiff.a"
@ -29,6 +35,9 @@ OPTIONS_UNSET+=PULSEAUDIO SNDIO
OPTIONS_UNSET+=JACK
.endif
OPTIONS_SET+=OPTIMIZED_CFLAGS
# qemu uses STATIC_LINK instead of the more standard flag of STATIC
OPTIONS_SET+=STATIC_LINK
# Work-around for bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277021
.if ${.CURDIR:M*/www/firefox}
LDFLAGS+= -lm
.endif