OOM killer / memory pressure issue on Steam Deck after long uptime and 7z archive compression
Environment
Device: Steam Deck OLED
BIOS: F7G0114
Kernel: 6.16.12-valve21-1-charcoal-616-g6e6a05c0d53f-dirty
SteamOS: 3.8.x
Problem description
After long uptime (several hours or more), the system starts experiencing severe memory pressure during creation/compression of large archives using 7z/PeaZip.
The issue does not happen immediately after reboot, but appears only after the system has been running for a long time (games, suspend/resume, Steam UI usage, browser, etc.).
When compressing large solid 7z archives:
- the system becomes extremely slow,
- swap thrashing begins,
- OOM killer activates,
- unrelated processes are killed (often
steamwebhelper first),
- sometimes Steam UI becomes unstable.
After reboot the issue temporarily disappears.
Current memory configuration
ZRAM:
- 32 GB zstd
- swap priority 100
Memory state during normal operation:
- plenty of available RAM remains,
- swap usage is low,
- no permanent memory exhaustion.
/tmp is mounted as tmpfs:
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=7579844k,...)
Relevant kernel logs
OOM triggered by 7z:
7z invoked oom-killer: gfp_mask=0x140cca(...)
Out of memory: Killed process 3314 (steamwebhelper)
Call trace includes:
- do_swap_page
- handle_mm_fault
- __alloc_pages_slowpath
Large inactive file cache observed:
Additional observation
The issue does not reproduce on the stock SteamOS kernel.
The problem appears only on:
- 6.16.12-valve21-1-charcoal-616-g6e6a05c0d53f-dirty
Under the same workload on the stock SteamOS kernel:
- OOM killer does not trigger,
- swap thrashing is significantly reduced,
- the system remains stable even after long uptime and large archive compression.
Suspected cause
Possible interaction between:
- tmpfs-backed
/tmp,
- aggressive page cache growth,
- shared RAM/VRAM architecture on Steam Deck,
- long uptime memory fragmentation,
- heavy multithreaded 7z compression,
- high memory usage of LZMA2 solid compression,
- changes in memory reclaim / VM subsystem behavior in the current kernel.
The issue appears to be related more to memory reclaim / fragmentation / cache pressure than to actual lack of RAM or swap space.
Expected behavior
System should reclaim cache and memory more gracefully under pressure instead of entering swap storm and triggering OOM killer for unrelated processes.
Additional notes
Using /var/tmp instead of /tmp significantly reduces the issue frequency.
The problem is reproducible mostly after long uptime and not immediately after fresh boot.
OOM killer / memory pressure issue on Steam Deck after long uptime and 7z archive compression
Environment
Device: Steam Deck OLED
BIOS: F7G0114
Kernel: 6.16.12-valve21-1-charcoal-616-g6e6a05c0d53f-dirty
SteamOS: 3.8.x
Problem description
After long uptime (several hours or more), the system starts experiencing severe memory pressure during creation/compression of large archives using 7z/PeaZip.
The issue does not happen immediately after reboot, but appears only after the system has been running for a long time (games, suspend/resume, Steam UI usage, browser, etc.).
When compressing large solid 7z archives:
steamwebhelperfirst),After reboot the issue temporarily disappears.
Current memory configuration
ZRAM:
Memory state during normal operation:
/tmpis mounted as tmpfs:Relevant kernel logs
OOM triggered by 7z:
Call trace includes:
Large inactive file cache observed:
Additional observation
The issue does not reproduce on the stock SteamOS kernel.
The problem appears only on:
Under the same workload on the stock SteamOS kernel:
Suspected cause
Possible interaction between:
/tmp,The issue appears to be related more to memory reclaim / fragmentation / cache pressure than to actual lack of RAM or swap space.
Expected behavior
System should reclaim cache and memory more gracefully under pressure instead of entering swap storm and triggering OOM killer for unrelated processes.
Additional notes
Using
/var/tmpinstead of/tmpsignificantly reduces the issue frequency.The problem is reproducible mostly after long uptime and not immediately after fresh boot.