fix(kiosk): restore in-process-gpu + CPUQuota=200% to stop choppy HDMI audio
Both had regressed back to the pre-2026-06-28-incident state: GPU_FLAGS used --enable-gpu-rasterization on any node with a GPU, and CPUQuota was 75%. On archy-x250-exp (Intel HD 5500 under X11) this spins a dedicated GPU process at 55-92% CPU (falls back to software compositing anyway), and the 75% cgroup quota throttled the kiosk unit ~81% of the time (nr_throttled 4856/6005) — the exact CPU-starvation signature documented as the choppy- audio root cause. Restores the validated fix: --in-process-gpu, --num-raster-threads=1, GpuRasterization disabled via --disable-features, CPUQuota=200%. Verified on archy-x250-exp: no separate gpu-process, throttling dropped to ~3% (nr_throttled 14/503). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
fca34270be
commit
e559ccb767
@ -79,12 +79,14 @@ xset s noblank 2>/dev/null || true
|
|||||||
pkill -u archipelago -f 'chromium.*localhost' 2>/dev/null || true
|
pkill -u archipelago -f 'chromium.*localhost' 2>/dev/null || true
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
# GPU vs headless (#36). On a real kiosk display with a GPU, GPU rasterization is
|
# GPU vs headless (#36, choppy-audio incident 2026-06-28). --enable-gpu-rasterization
|
||||||
# fast. On a GPU-less / headless server (no /dev/dri), --enable-gpu-rasterization
|
# spins a dedicated GPU process at 55-92% CPU even on real GPU hardware (Intel HD 5500)
|
||||||
# forces GPU paths that fall back to software compositing and SPIN a full core at
|
# because under X11 it falls back to software compositing anyway — that CPU
|
||||||
# ~92% CPU, saturating the node. Detect the GPU and pick safe flags accordingly.
|
# starvation is what caused choppy HDMI audio. --in-process-gpu avoids the
|
||||||
|
# separate process; GpuRasterization is also disabled via --disable-features below.
|
||||||
|
# On a GPU-less / headless server (no /dev/dri), disable GPU entirely instead.
|
||||||
if [ -e /dev/dri/card0 ] || [ -e /dev/dri/renderD128 ]; then
|
if [ -e /dev/dri/card0 ] || [ -e /dev/dri/renderD128 ]; then
|
||||||
GPU_FLAGS="--enable-gpu-rasterization --num-raster-threads=2"
|
GPU_FLAGS="--in-process-gpu --num-raster-threads=1"
|
||||||
else
|
else
|
||||||
GPU_FLAGS="--disable-gpu --num-raster-threads=1"
|
GPU_FLAGS="--disable-gpu --num-raster-threads=1"
|
||||||
fi
|
fi
|
||||||
@ -103,7 +105,7 @@ while true; do
|
|||||||
--disable-translate \
|
--disable-translate \
|
||||||
--no-first-run \
|
--no-first-run \
|
||||||
--check-for-update-interval=31536000 \
|
--check-for-update-interval=31536000 \
|
||||||
--disable-features=TranslateUI,MetricsReporting,AutofillServerCommunication,PasswordManagerEnabled \
|
--disable-features=TranslateUI,MetricsReporting,AutofillServerCommunication,PasswordManagerEnabled,GpuRasterization \
|
||||||
--disable-session-crashed-bubble \
|
--disable-session-crashed-bubble \
|
||||||
--disable-save-password-bubble \
|
--disable-save-password-bubble \
|
||||||
--disable-suggestions-service \
|
--disable-suggestions-service \
|
||||||
|
|||||||
@ -25,8 +25,11 @@ RestartSec=5
|
|||||||
# backend (it caused the .198 receive timeout + deploy storms). Cap CPU + memory
|
# backend (it caused the .198 receive timeout + deploy storms). Cap CPU + memory
|
||||||
# so a runaway kiosk can never take the whole machine down; Delegate so the cap
|
# so a runaway kiosk can never take the whole machine down; Delegate so the cap
|
||||||
# also binds the chromium/Xorg children in this unit's cgroup.
|
# also binds the chromium/Xorg children in this unit's cgroup.
|
||||||
|
# CPUQuota=75% (0.75 cores) was too tight even for normal playback — the kiosk
|
||||||
|
# was throttled ~40% of the time, which is what caused choppy HDMI audio on
|
||||||
|
# archy-x250-exp (2026-06-28 incident). 200% (2 cores) gives enough headroom.
|
||||||
Delegate=yes
|
Delegate=yes
|
||||||
CPUQuota=75%
|
CPUQuota=200%
|
||||||
MemoryMax=1500M
|
MemoryMax=1500M
|
||||||
MemoryHigh=1200M
|
MemoryHigh=1200M
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user