[scudo] Adjust the reserved size for each Region to 1GB.
Test: CQ
We had a test case where we were running out of virtual space in a region.
This change increases that space by 4X.
Also adds some extra debug info if this happens again.
Issue: MA-572
Change-Id: Ide8bdbb758c7d9153169c9ead16288be0dfd76bb
diff --git a/zircon/third_party/ulib/scudo/allocator.h b/zircon/third_party/ulib/scudo/allocator.h
index 1526d11..1dce9c4 100644
--- a/zircon/third_party/ulib/scudo/allocator.h
+++ b/zircon/third_party/ulib/scudo/allocator.h
@@ -54,8 +54,8 @@
};
struct FuchsiaConfig {
- // 256MB Regions
- typedef SizeClassAllocator64<DefaultSizeClassMap, 28U> Primary;
+ // 1GB Regions
+ typedef SizeClassAllocator64<DefaultSizeClassMap, 30U> Primary;
template <class A>
using TSDRegistryT = TSDRegistrySharedT<A, 8U>; // Shared, max 8 TSDs.
};
diff --git a/zircon/third_party/ulib/scudo/primary64.h b/zircon/third_party/ulib/scudo/primary64.h
index 37e2d3d..cd2af14 100644
--- a/zircon/third_party/ulib/scudo/primary64.h
+++ b/zircon/third_party/ulib/scudo/primary64.h
@@ -247,6 +247,7 @@
if (UNLIKELY(RegionBase + MappedUser + UserMapSize > RegionSize)) {
if (!Region->Exhausted) {
Region->Exhausted = true;
+ printStats();
Printf(
"Scudo OOM: The process has Exhausted %zuM for size class %zu.\n",
RegionSize >> 20, Size);