[RFC] Make CONFIG_LRU_GEN mandatory for community devices
CONFIG_LRU_GEN is a new kernel option in Linux 6.1. It enables the "Multi-Generational LRU", which was developed by Google to improve how Linux behaves in situations with high memory pressure. More details can be found here: https://lore.kernel.org/lkml/20210313075747.3781593-1-yuzhao@google.com/
Highlights:
On Chrome OS, our real-world benchmark that browses popular websites in multiple tabs demonstrates 51% less CPU usage from kswapd and 52% (full) less PSI on v5.11. And kswapd profile looks like: 49.36% lzo1x_1_do_compress 4.54% page_vma_mapped_walk 4.45% memset_erms 3.47% walk_pte_range 2.88% zram_bvec_rw
In addition, direct reclaim latency is reduced by 22% at 99th percentile and the number of refaults is reduced 7%. These metrics are important to phones and laptops as they are correlated to user experience.
On Android, our most advanced simulation that generates memory pressure from realistic user behavior shows 18% fewer low-memory kills, which in turn reduces cold starts by 16%.
On Chrome OS, our field telemetry reports 96% fewer low-memory tab discards and 59% fewer OOM kills from fully-utilized devices and no UX regressions from underutilized devices.
I think such improvements could benefit what we are trying to do with pmOS and there is no reason as far as I can tell to leave some devices out of this. I've already enabled it for the linux-postmarketos-exynos4 and linux-postmarketos-stericsson kernels personally. As such, I propose we require this as part of the community kconfig check. My rationale for putting it in the community check rather than the baseline check is that pmOS works just fine without this, so it doesn't make sense to me to require it for work-in-progress ports.