diff options
author | Kalesh Singh <kaleshsingh96@gmail.com> | 2024-04-12 10:43:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-12 10:43:59 -0700 |
commit | 2620ccc3cdebcaa53b96b5f4d79ffe3951534e07 (patch) | |
tree | aac4913e3a12135f4e40fff28222ffe1ff39db25 /llvm/unittests/Support/VirtualFileSystemTest.cpp | |
parent | a11a4324bb27c01e7a005e1a7f49fb8284098e8c (diff) | |
download | llvm-2620ccc3cdebcaa53b96b5f4d79ffe3951534e07.zip llvm-2620ccc3cdebcaa53b96b5f4d79ffe3951534e07.tar.gz llvm-2620ccc3cdebcaa53b96b5f4d79ffe3951534e07.tar.bz2 |
ANDROID: x86_64: Set default max-page-size to 16kB (#87413)
Android now supports both 4kB and 16kB page sizes. The vast majority of
android apps are developed on x86_64 machines. In order to provide
emulators that support larger page sizes, Android emulates the page-size
in x86_64 to support testing apps for large page size support.
For this reason, update Android x86_64 ELFs default max-page-size to
16384 to support both 4kB and 16kB page-size devices.
Increase max-page-size raises concerns of increased disk space and extra
VMA slab memory.
In Android, RO partitions use sparse images, so that the holes on ELFs
don't allocate blocks on disk; and PackageManager ensures to punch holes
in ELF-paddings on the /data partition when apps are installed.
Extra VMA slab memory is addressed by the bionic loader, which extends
segment VMAs to cover the gaps between consecutive segment mappings, to
avoid the extra VMAs needed for the gap PROT_NONE mappings (---p). This
optimization is done in the crt_pad_segment note [1] is present in the
ELF.
[1]
https://cs.android.com/android/platform/superproject/main/+/189e480390ef13199d59e1fb54078e8b78ea6f79:bionic/libc/arch-common/bionic/crt_pad_segment.S
---------
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
Co-authored-by: Kalesh Singh <kaleshsingh@google.com>
Diffstat (limited to 'llvm/unittests/Support/VirtualFileSystemTest.cpp')
0 files changed, 0 insertions, 0 deletions