New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
linux: enable MGLRU in config options #8275
Conversation
Looks interesting, but the project has a long history of people showing up with the latest fashionable kernel tweak only to discover that in a minimalist (non-server, non-desktop) OS where everything already runs in RAM; there's no meaningful improvement. I'd like to see a higher standard of performance testing than "doesn't seem to break anything" please :) |
That was a forum user request. The change looks harmless enough, so I don't see why not. |
If we implemented every user request from the forums LE would be a 1.2GB image download and we'd still be supporting i386 hardware. If you read more on this topic, i.e. https://lore.kernel.org/linux-mm/be281873-7c28-12b4-7eb5-50d08042549f@intel.com/ it's quite clear that the change targets and benefits systems under heavy memory pressure. Due to the low footprint of LE (450MB used on a 1GB system) and 1GB being the minimum hardware spec that we support now; most LE systems are not under memory pressure. Thus it would be good to run some performance testing with this change to see whether it has any real world benefit, or understand what conditions that it benefits. If there is proveable benefit we should add the change. If there isn't, we generally choose not to alter the dynamics of a stable kernel config. |
@chewitt, that goes both ways, I guess. Case in point: why does the LibreELEC kernel need to reserve 256 MiB of CMA by default on the x86-64 architecture? Or why does it need to have any cgroup controllers enabled (aside from |
I'm 100% sure there questionnable defconfig options set among our codebase. it would be great to rationalise them, but anyone doing that will be equally requested to show evidence their removal or change does no harm and brings a benefit to the disro. Otherwise we desire minimum change to stable/proven configuration and have a "trust, but verify" approach for suggested changes. |
We do have this enabled on RPiOS kernel. There was an issue where OOM became common with CONFIG_VMSPLIT_3G (only used on 32-bit Pi4 kernel), where we had to disable MGLRU, but that shouldn't affect you. We've had this enabled for 6 months or so, so I'm pretty happy it doesn't break anything. |
FYI: Debian x86_64 kernel is built with
|
Why would anyone run a 32-bit kernel on a 64-bit CPU? A 32-bit userspace I understand, but the kernel…? That's just insanity. |
32-bit userspace is needed by some if sdcard is used on older Pi's. |
Because x86 can still use drm prime in Kodi which allocates from the cma pool (although it's for sw rendering only where inputstream is used).
Not 100% sure on this one but it could be for docker. |
I'm changing this to |
That'd be an acceptable compromise, in my humble opinion. |
Should this be added to |
https://raw.githubusercontent.com/torvalds/linux/master/Documentation/admin-guide/mm/multigen_lru.rst
Runtime tested on Generic, doesn't seem to break anything.