Skip to content

fix(qam): resolve Quick Access Menu freeze sur charge jeu - #289

Closed
drewano wants to merge 1 commit into
armada-os:mainfrom
drewano:fix/qam-freeze-a09ebab-audit
Closed

fix(qam): resolve Quick Access Menu freeze sur charge jeu#289
drewano wants to merge 1 commit into
armada-os:mainfrom
drewano:fix/qam-freeze-a09ebab-audit

Conversation

@drewano

@drewano drewano commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Corrige le freeze aléatoire du menu de droite (QAM) observé sur 20260819.ddb5553 (aarch64/FEX) quand un jeu sature les cores.

Causes

  1. PluginLoader affamé par CFS — le binaire Decky (FEX x86) tournait en SCHED_OTHER nice 0, donc le thread CEF/Decky n'était plus ordonnancé sous charge. Drop-in systemd 10-qam-freeze-fix.conf (SCHED_RR 10 + Nice -5 + IOScheduling best-effort) isole Decky de la contention jeu. Le jeu reste piloté par armada-powerd/armada_perf.

  2. armada-control bloque sa boucle selector sur armada-power reload (D-Bus, 1–3 s) à chaque write_config(power) — plus aucun write_config/game_launched n'est traité et les call() Decky timeout. Passage en fire-and-forget (threading.Thread daemon).

Le fix DropdownItemInternal → Field+Dropdown (#272, ddb5553) était déjà présent à a09ebab.

Test

Jeu gourmand + spam QAM/sliders → plus de freeze. chrt -p $(pgrep -f PluginLoader) affiche RR 10 après reboot.

Console testée

armada@192.168.1.15, image testing 20260819.ddb5553, live-patch non applicable sans rebuild (Bootc RO, bootc usr-overlay requiert root interactif). Le fix nécessite l'image CI buildée par cette PR.

Closes: freeze QAM (menu deroulant de droite).

Le menu de droite (QAM / Quick Access Menu) gelait aléatoirement
quand un jeu saturait les cores : deux causes cumulatives.

- PluginLoader affamé par CFS : le binaire Decky (FEX x86) tournait
  en SCHED_OTHER Nice 0, donc le thread CEF/Decky n'était plus
  ordonnancé sous charge. Drop-in systemd 10-qam-freeze-fix.conf
  (SCHED_RR 10 + Nice -5 + IOScheduling best-effort) isole Decky de
  la contention jeu — le jeu reste piloté par armada-powerd/perf.

- armada-control bloquait sa boucle selector sur `armada-power
  reload` (D-Bus PowerProfilesDaemon, 1-3 s) lors d'un write_config
  power : plus aucun write_config/game_launched n'était traité et
  les call() Decky timeout -> spinner QAM infini. Le reload est
  désormais fire-and-forget (thread daemon).

Le fix DropdownItemInternal -> Field+Dropdown (armada-os#272) était déjà
présent à a09ebab ; ces deux correctifs couvrent les vecteurs
restants observés sur console 20260819.ddb5553 (aarch64, FEX).

Test: ouvrir un jeu gourmand + spammer QAM/sliders -> plus de
freeze, `chrt -p $(pgrep -f PluginLoader)` affiche RR 10.

Co-Authored-By: Claude <noreply@anthropic.com>
@drewano drewano closed this Aug 20, 2026
@drewano
drewano deleted the fix/qam-freeze-a09ebab-audit branch August 20, 2026 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant