Repository navigation
langsdorff@3.5
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 onfsync()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
Nto a non-existent path (a silent no-op). The kernel now exposes/sys/module/sync/parameters/fsync_enabledas an int; corrected to0.
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 |