[vm] Limit heap size to 15GB on 64-bit systems to avoid fatal errors on page table exhaustion.

Compare 2d22b6ee6b.

Change-Id: I67c25030fca1aca144d6affb3108f10d20de5b6f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99092
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak 2019-08-13 21:36:14 +00:00 committed by commit-bot@chromium.org
parent fd10fa1b1d
commit 13005eec86

View file

@ -36,7 +36,11 @@ const intptr_t kSmiMin32 = -(static_cast<intptr_t>(1) << kSmiBits32);
const intptr_t kBytesPerBigIntDigit = 4;
// The default old gen heap size in MB, where 0 == unlimited.
const intptr_t kDefaultMaxOldGenHeapSize = (kWordSize <= 4) ? 1536 : 0;
// 32-bit: OS limit is 2 or 3 GB
// 64-bit: OS limit is 2^16 page table entries * 256 KB HeapPages = 16 GB
// Set the VM limit below the OS limit to increase the likelihood of failing
// gracefully with a Dart OutOfMemory exception instead of SIGABORT.
const intptr_t kDefaultMaxOldGenHeapSize = (kWordSize <= 4) ? 1536 : 15360;
#define kPosInfinity bit_cast<double>(DART_UINT64_C(0x7ff0000000000000))
#define kNegInfinity bit_cast<double>(DART_UINT64_C(0xfff0000000000000))