mirror of
https://github.com/nestriness/nestri.git
synced 2026-11-04 06:32:39 +02:00
Inside a box, every PipeWire, wireplumber and neswire thread was running SCHED_OTHER. The rtkit -> polkit -> system bus chain started but granted nothing. With a game keeping the vCPUs busy, the graph's 5 ms cycles ran late. pw-top counted no xruns, but neswire sent packets in bursts, and the client saw 15-25 ms gaps in audio alone (video arriving on time in the same seconds), which emptied its 10 ms cushion every 30 s or so. pipewire and neswire now exec with RLIMIT_RTPRIO 95, set before the uid drop. module-rt checks that first and sets SCHED_FIFO itself, which is how PipeWire is meant to run outside a desktop session. The workload doesn't get the grant, so a game can't take the CPU away from the graph. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>