Skip to content

Commit

Permalink
[sanitizer_common] Use 38-bit mmap range for Fuchsia
Browse files Browse the repository at this point in the history
46cb8d9 unconditionally changed the
mmap range to 2^48 for all riscv sanitizers. This changes the allocator
tunings for the 32-bit allocator for riscv and led to a severe
performance regression for our lsan tests. This effectively revers the
tuning change but only for Fuchsia.

Once we enable the 64-bit allocator for everything riscv, this value
will be irrelevant since it's only relevant for the 32-bit allocator.
  • Loading branch information
PiJoules committed Oct 17, 2023
1 parent 1981b1b commit 86cee59
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion compiler-rt/lib/sanitizer_common/sanitizer_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,15 @@
# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 40)
# endif
#elif SANITIZER_RISCV64
# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 47)
// FIXME: Rather than hardcoding the VMA here, we should rely on
// GetMaxUserVirtualAddress(). This will require some refactoring though since
// many places either hardcode some value or SANITIZER_MMAP_RANGE_SIZE is
// assumed to be some constant integer.
# if SANITIZER_FUCHSIA
# define SANITIZER_MMAP_RANGE_SIZE (1ULL << 38)
# else
# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 47)
# endif
#elif defined(__aarch64__)
# if SANITIZER_APPLE
# if SANITIZER_OSX || SANITIZER_IOSSIM
Expand Down

0 comments on commit 86cee59

Please sign in to comment.