-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Enable support for huge pages #6297
Conversation
You'll need to provide information on what the benefits are. I suspect this setting won't work well with #6273 which gets a performance benefit by deliberately making the pages more scattered (so unlikely to be able to use huge pages). |
My interest in hugepages is an up to 33% performance improvement for XMRig, a crypto mining application. See this github gist for more information.
Compiling the kernel with HugeTLB support does not change the default pages behavior at all, it simply gives the user the choice to configure it further without needing to recompile the kernel. Bear in mind that if you are not comfortable with potential ramifications of this PR, my specific application would continue to work fine without these lines:
If you would like for me to remove these lines and only leave behind |
I've done some testing with geekbench on a pi5. I'm reporting the single-core and multi-core scores. default (current kernel) config HUGE (this PR) config HUGE + cmdline NUMA (#6273) NUMA+config HUGE NUMA+config HUGE+cmdline So, this PR is not helping this test case, and it defeats the much more promising (NUMA) option. |
Given the amount of compute time involved in crypto mining, a bit extra to compile your own optimised kernel every now and again doesn't seem unreasonable. Based on @popcornmix's findings, this is a "No". |
@pelwell Please reconsider
The above are common options used on pretty much all linux systems as previously indicated by @Botspot due to the varied userspace application benefits while having no performance downsides when left at stock configuration in the few application that are negatively affected. For a detailed explanation on some of the benefits see the below: @popcornmix 's tests are invalid due to testing with the transparent always options enabled |
I've retested and @Botspot This PR currently enables Is it correct the only option that you need is |
If I understand correctly the XMRig docs, all that is needed at a bare minimum is My comment above did point this out, but the PR was still closed. My intention with the other purposed changes was to make the kernel more similar to mainline Linux distros. |
Upstream v3d patches are adding support for big (64K) and super (1MB) pages, which require these optons. See: https://lore.kernel.org/dri-devel/[email protected]/ There are also some potential performance benefits linked from: raspberrypi#6297 Signed-off-by: Dom Cobley <[email protected]>
Upstream v3d patches are adding support for big (64K) and super (1MB) pages, which require these options. See: https://lore.kernel.org/dri-devel/[email protected]/ There are also some potential performance benefits linked from: raspberrypi#6297 Signed-off-by: Dom Cobley <[email protected]>
This is useful for certain applications that need larger chunks of RAM allocated to perform well.
I have tested these changes on Raspberry Pi 5 and there are no known drawbacks or regressions.
Huge pages are enabled by default on all x86 kernels I am aware of, so enabling it here for arm64 seems reasonable.