[compiler-rt] [compiler-rt][lsan][Fuchsia] Adjust lsan allocator settings (PR #69401)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 23 11:52:53 PDT 2023
https://github.com/PiJoules updated https://github.com/llvm/llvm-project/pull/69401
>From 503cc1985b4299a360a9f44a5c7804f10e8b0b1e Mon Sep 17 00:00:00 2001
From: Leonard Chan <leonardchan at google.com>
Date: Wed, 18 Oct 2023 00:19:10 +0000
Subject: [PATCH] [compiler-rt][lsan][Fuchsia] Adjust lsan allocator settings
These now match the settings for the asan allocator on Fuchsia+RISCV.
---
compiler-rt/lib/lsan/lsan_allocator.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/compiler-rt/lib/lsan/lsan_allocator.h b/compiler-rt/lib/lsan/lsan_allocator.h
index 7197e0a736298fb..5eed0cbdb309bbd 100644
--- a/compiler-rt/lib/lsan/lsan_allocator.h
+++ b/compiler-rt/lib/lsan/lsan_allocator.h
@@ -68,8 +68,23 @@ using PrimaryAllocator = PrimaryAllocatorASVT<LocalAddressSpaceView>;
#else
# if SANITIZER_FUCHSIA || defined(__powerpc64__)
const uptr kAllocatorSpace = ~(uptr)0;
+# if SANITIZER_RISCV64
+// See the comments in compiler-rt/lib/asan/asan_allocator.h for why these
+// values were chosen.
+const uptr kAllocatorSize = UINT64_C(1) << 33; // 8GB
+using LSanSizeClassMap = SizeClassMap</*kNumBits=*/2,
+ /*kMinSizeLog=*/5,
+ /*kMidSizeLog=*/8,
+ /*kMaxSizeLog=*/18,
+ /*kNumCachedHintT=*/8,
+ /*kMaxBytesCachedLog=*/10>;
+static_assert(LSanSizeClassMap::kNumClassesRounded <= 32,
+ "32 size classes is the optimal number to ensure tests run "
+ "effieciently on Fuchsia.");
+# else
const uptr kAllocatorSize = 0x40000000000ULL; // 4T.
using LSanSizeClassMap = DefaultSizeClassMap;
+# endif
# elif SANITIZER_RISCV64
const uptr kAllocatorSpace = ~(uptr)0;
const uptr kAllocatorSize = 0x2000000000ULL; // 128G.
More information about the llvm-commits
mailing list