forked from OSchip/llvm-project
[scudo][standalone] Change default Android config
Summary: This changes a couple of parameters in the default Android config to address some performance and memory footprint issues (well to be closer to the default Bionic allocator numbers). Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D73750
This commit is contained in:
parent
abb0357123
commit
64cb77b946
|
@ -39,15 +39,16 @@ struct DefaultConfig {
|
|||
struct AndroidConfig {
|
||||
using SizeClassMap = AndroidSizeClassMap;
|
||||
#if SCUDO_CAN_USE_PRIMARY64
|
||||
// 128MB regions
|
||||
typedef SizeClassAllocator64<SizeClassMap, 27U,
|
||||
// 256MB regions
|
||||
typedef SizeClassAllocator64<SizeClassMap, 28U,
|
||||
/*MaySupportMemoryTagging=*/true>
|
||||
Primary;
|
||||
#else
|
||||
// 512KB regions
|
||||
typedef SizeClassAllocator32<SizeClassMap, 19U> Primary;
|
||||
// 256KB regions
|
||||
typedef SizeClassAllocator32<SizeClassMap, 18U> Primary;
|
||||
#endif
|
||||
typedef MapAllocator<MapAllocatorCache<>> Secondary;
|
||||
// Cache blocks up to 2MB
|
||||
typedef MapAllocator<MapAllocatorCache<32U, 2UL << 20>> Secondary;
|
||||
template <class A>
|
||||
using TSDRegistryT = TSDRegistrySharedT<A, 2U>; // Shared, max 2 TSDs.
|
||||
};
|
||||
|
|
|
@ -207,7 +207,7 @@ private:
|
|||
static const uptr PrimarySize = RegionSize * NumClasses;
|
||||
|
||||
// Call map for user memory with at least this size.
|
||||
static const uptr MapSizeIncrement = 1UL << 17;
|
||||
static const uptr MapSizeIncrement = 1UL << 18;
|
||||
// Fill at most this number of batches from the newly map'd memory.
|
||||
static const u32 MaxNumBatches = 8U;
|
||||
|
||||
|
|
|
@ -141,10 +141,10 @@ typedef SizeClassMap<3, 5, 8, 17, 8, 10> DefaultSizeClassMap;
|
|||
// TODO(kostyak): further tune class maps for Android & Fuchsia.
|
||||
#if SCUDO_WORDSIZE == 64U
|
||||
typedef SizeClassMap<4, 4, 8, 14, 4, 10> SvelteSizeClassMap;
|
||||
typedef SizeClassMap<3, 5, 8, 17, 14, 14> AndroidSizeClassMap;
|
||||
typedef SizeClassMap<2, 5, 9, 16, 14, 14> AndroidSizeClassMap;
|
||||
#else
|
||||
typedef SizeClassMap<4, 3, 7, 14, 5, 10> SvelteSizeClassMap;
|
||||
typedef SizeClassMap<3, 5, 8, 17, 14, 14> AndroidSizeClassMap;
|
||||
typedef SizeClassMap<2, 5, 9, 16, 14, 14> AndroidSizeClassMap;
|
||||
#endif
|
||||
|
||||
} // namespace scudo
|
||||
|
|
Loading…
Reference in New Issue