←back to thread

Bought myself an Ampere Altra system

(marcin.juszkiewicz.com.pl)
204 points pabs3 | 3 comments | | HN request time: 0.717s | source
Show context
amelius ◴[] No.44421186[source]
> And the latest one, an Apple MacBook Pro, is nice and fast but has some limits — does not support 64k page size. Which I need for my work.

I wonder where this requirement comes from ...

replies(3): >>44421250 #>>44421494 #>>44421603 #
1. zozbot234 ◴[] No.44421494[source]
Asahi Linux might support 64k pages on Apple Silicon hardware. Might require patching some of the software though, if it's built assuming a default page size.

It should also be possible to patch Linux itself to support different page sizes in different processes/address spaces, which it currently doesn't. It would be quite fiddly (which is why it hasn't happened so far) but it should be technically feasible.

IIRC ARM64 hardware also has some special support (compared to x86 and x86-64) for handling multiple-page "blocks" - that kind of bridges the gap between a smaller and larger page size, opening up further scenarios for better support on the OS side.

replies(1): >>44422594 #
2. haerwu ◴[] No.44422594[source]
Apple Mx family of cpus supports only 4k and 16k page sizes. There is no way to run 64k binaries there without emulating whole cpu.
replies(1): >>44422864 #
3. zozbot234 ◴[] No.44422864[source]
This is not the full story. As I mentioned in parent comment, ARM64 supports a special "contiguous" bit in its page table entries that, when set, allows a "block" of multiple contiguous pages to be cached in the TLB as a single entry. Thus, assuming 4k granularity, 64k "pages" could be implemented as contiguous "blocks" of 16 physical pages.