Files
Arch-R/projects
Joel Wirāmu Pauling a29ef69496 feat(memory/IO) This update optimizes memory throughput and I/O performance across all ROCKNIX AArch64 targets by enabling File-System-backed Transparent Huge Pages (THP) and implementing a tiered hardware-aware tuning strategy.
With MGLRU and zRAM providing a safety net, enabling Large Page (2MB) support reduces TLB misses, allowing the CPU to prioritize emulation logic over memory address translation.

Key Features Enabled
File-System THP (CONFIG_READ_ONLY_THP_FOR_FS): Collapses read-only file mappings (game binaries/data) into huge pages to accelerate asset loading.

Contiguous Page Table Entries (CONFIG_ARM64_CONTPTE): Allows the MMU to treat groups of pages as a single entry, increasing TLB efficiency on high-performance targets.

Memory Compaction & Migration: Re-enabled infrastructure to shuffle physical RAM into contiguous blocks required for huge pages.

Architecture-Specific Write Support (CONFIG_ARCH_WANT_PMD_MKWRITE): Ensures efficient huge page handling during high-performance memory writes.

Tiered Userspace Management
The rocknix-memory-manager applies specific logic at boot based on the SoC and RAM capacity:

Flagship Mode (RK3588, SM8x, RK3399):

Sets defrag to defer+madvise for proactive huge page creation.

Sets vm.compaction_proactiveness to 40 to maintain a pool of contiguous blocks.

Budget Mode (H700, RK3326):

Sets defrag to defer only to prevent CPU "stalls" during gameplay.

Sets vm.compaction_proactiveness to 10 to prioritize raw CPU availability.

Texture Performance: Globally enables shmem_enabled=advise to benefit Vulkan and Wayland texture handling.

Swappiness: Sets vm.swappiness to 100 when ZRAM is active to keep physical RAM unfragmented for huge page allocations.

Safety Rationale
MGLRU: Prevents "reclaim storms" during huge page allocation on 1GB devices.

zRAM: Absorbs memory pressure via high-speed compressed swap.

Read-Only Focus: FS-Backed THP targets low-risk mappings while providing high-impact gains for asset streaming.
2026-02-05 08:47:25 +13:00
..
2025-02-03 16:00:41 -05:00