Skip to content

langsdorff@3.5

Choose a tag to compare

@github-actions github-actions released this 28 Jun 00:56
· 155 commits to main since this release

Performance & I/O

I/O and virtual-memory tuning is now compiled directly into langsdorffkernel
as build-time defaults, instead of being written at boot through init.s5e3830.rc.
This means the tuning is applied earlier in the boot sequence, consistently, and
without the per-boot sysfs/procfs injection.

Highlights

  • Smoother app launches and file loading on the eMMC storage bottleneck.
  • Reduced I/O-wait stalls, especially for SQLite-heavy apps (messaging, browser, etc.).
  • Less wasted CPU on pointless ZRAM read-ahead and I/O accounting.
Technical details

Storage (mmcblk0)

Setting Value Purpose
scheduler mq-deadline Low-latency, lightweight scheduler suited to eMMC
read_ahead_kb 2048 Larger sequential read-ahead to hide eMMC latency
nr_requests 128 Deeper queue for better parallelism under load
iostats 0 Disable per-request I/O accounting overhead

ZRAM (zram0)

  • read_ahead_kb = 0 — read-ahead is meaningless for in-RAM compressed swap; disabling it avoids wasted decompression/CPU.

FSync

  • fsync_enabled = 0 — Kernel FSync disabled to eliminate I/O-wait on fsync() calls (mainly SQLite writes). Trade-off: last few seconds of unflushed data may be lost on a sudden power loss / panic.
  • Bugfix: the old injection wrote N to a non-existent path (a silent no-op). The kernel now exposes /sys/module/sync/parameters/fsync_enabled as an int; corrected to 0.

VM (keep dirty pages & caches in RAM longer, avoid eMMC write stalls)

Setting Value Purpose
vm.swappiness 30 Keep app pages in RAM, reduce swap I/O
vm.vfs_cache_pressure 30 Retain inode/dentry caches longer
vm.dirty_ratio 80 Allow more dirty pages before forced writeback
vm.dirty_background_ratio 40 Defer background flush, batch writes