-
Notifications
You must be signed in to change notification settings - Fork 467
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
Plans to support ARM64 as architecture? #33
Comments
NOTE: I am building currently with the |
As a general note, ARM64 support would be desirable, but it's not yet ready. Our per-CPU cache implementation relies on hand-written assembly and needs to be ported to ARM. Do you know how your page table is configured with your kernel build? https://kernel.org/doc/Documentation/arm64/memory.txt has a discussion of 39- versus 48-bit address spaces. As an optimization, we "tag" (by using an upper bit of the pointer) sampled objects during allocation. The tag makes it easy to distinguish sampled objects from unsampled ones. My suspicion is that we are unable to allocate memory with the right bit pattern--possibly due to a constrained 39-bit address space--and so we fail. One way of testing this hypothesis is to edit |
Thanks for the quick reply! Based on the boot output, I think it is using 39-bit addresses:
I'll give it a try to change the address bits and see if it works. In the short term I'm interested in using tcmalloc for the heap profiling abilities, so even if the assembly code is not complete, do you expect tcmalloc to work functionally (albeit not at max performance) on ARM64? |
BTW, the change to 39-bits seems to work (at least for the |
Hello, I have just compiled snort 3.1 on Arm64 machine any idea? |
I would love to use tcmalloc on an ARM64 system, but it seems to not be officially supported and when I try to run I get the following:
A bit of debugging it looks like every time it calls the mmap with a hint it always gets back the same address (which doesn't match the hint), for example (with some extra logging):
The system I'm testing this on has a 4.9 kernel, so I can't try with
MAP_FIXED_NOREPLACE
. I also don't understand why mmap is always returning the same address, not sure if this is an ARM64 specific thing or something about my particular platform (clang-9, Ubuntu 18.04, Kernel 4.9.140-tegra, running on a Jetson Nano).In any case, are there plans to support ARM64, and if not, any thoughts on what may be going on here?
The text was updated successfully, but these errors were encountered: