This commit enables Multi-Gen LRU (CONFIG_LRU_GEN) across supported target kernels. MGLRU replaces the kernel's traditional page reclamation logic with a more efficient multi-generational approach.
This is highly beneficial for memory-constrained ARM SoCs, as it provides better heuristics for identifying "hot" vs "cold" pages, significantly reducing unnecessary I/O and micro-stutters under memory pressure.
Technical Implementation:
Enables CONFIG_LRU_GEN and CONFIG_LRU_GEN_ENABLED.
Targeted at devices running Kernel 6.1 or newer.
Specifically excluded is SDM845 kernels (5.18 kernel).
Initialization and First-Boot Behavior:
Note: Users may observe transient "task wait" messages or increased CPU overhead during the initial boot of a fresh installation. This is a byproduct of MGLRU's generation-tracking heuristics during high-churn operations (such as filesystem expansion and initial cache generation). The scheduler overhead for generation updates stabilizes once the primary working set is established and the initial I/O burst subsides.
Note: CONFIG_LRU_GEN_WALKS_MMU=y is enabled but some targets (RK3588)
are still running with kernel symbols where this is Rolled up into the
CONFIG_LRU_GEN still - I haved aligned it here per request but it will
get silently dropped by next oldconfig run until such time the RK3588 is
updated to a version that unrolls the symbol.