[heap] Decouple the max semi-space size from the page size
This allows us to change the page size without affecting Scavenger heuristics and performance. Bug: chromium:852420 Change-Id: Idcff4296e88e16f9af0ee6ecd00c63d789866fd6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499494 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60028}
This commit is contained in:
parent
676a020322
commit
037ff2b725
@ -238,10 +238,11 @@ class Heap {
|
||||
#endif
|
||||
|
||||
// Semi-space size needs to be a multiple of page size.
|
||||
static const size_t kMinSemiSpaceSizeInKB =
|
||||
1 * kPointerMultiplier * ((1 << kPageSizeBits) / KB);
|
||||
static const size_t kMaxSemiSpaceSizeInKB =
|
||||
16 * kPointerMultiplier * ((1 << kPageSizeBits) / KB);
|
||||
static const size_t kMinSemiSpaceSizeInKB = 512 * kPointerMultiplier;
|
||||
static const size_t kMaxSemiSpaceSizeInKB = 8192 * kPointerMultiplier;
|
||||
|
||||
STATIC_ASSERT(kMinSemiSpaceSizeInKB* KB % (1 << kPageSizeBits) == 0);
|
||||
STATIC_ASSERT(kMaxSemiSpaceSizeInKB* KB % (1 << kPageSizeBits) == 0);
|
||||
|
||||
static const int kTraceRingBufferSize = 512;
|
||||
static const int kStacktraceBufferSize = 512;
|
||||
|
@ -20,14 +20,13 @@ typedef TestWithIsolate HeapTest;
|
||||
typedef TestWithIsolateAndPointerCompression HeapWithPointerCompressionTest;
|
||||
|
||||
TEST(Heap, SemiSpaceSize) {
|
||||
const size_t KB = static_cast<size_t>(i::KB);
|
||||
const size_t MB = static_cast<size_t>(i::MB);
|
||||
const size_t pm = i::Heap::kPointerMultiplier;
|
||||
ASSERT_EQ(1u * pm * MB / 2, i::Heap::ComputeMaxSemiSpaceSize(0u) * KB);
|
||||
ASSERT_EQ(1u * pm * MB / 2, i::Heap::ComputeMaxSemiSpaceSize(512u * MB) * KB);
|
||||
ASSERT_EQ(2u * pm * MB, i::Heap::ComputeMaxSemiSpaceSize(1024u * MB) * KB);
|
||||
ASSERT_EQ(5u * pm * MB, i::Heap::ComputeMaxSemiSpaceSize(2024u * MB) * KB);
|
||||
ASSERT_EQ(8u * pm * MB, i::Heap::ComputeMaxSemiSpaceSize(4095u * MB) * KB);
|
||||
ASSERT_EQ(512u * pm, i::Heap::ComputeMaxSemiSpaceSize(0u));
|
||||
ASSERT_EQ(512u * pm, i::Heap::ComputeMaxSemiSpaceSize(512u * MB));
|
||||
ASSERT_EQ(2048u * pm, i::Heap::ComputeMaxSemiSpaceSize(1024u * MB));
|
||||
ASSERT_EQ(5120u * pm, i::Heap::ComputeMaxSemiSpaceSize(2024u * MB));
|
||||
ASSERT_EQ(8192u * pm, i::Heap::ComputeMaxSemiSpaceSize(4095u * MB));
|
||||
}
|
||||
|
||||
TEST_F(HeapTest, ASLR) {
|
||||
|
Loading…
Reference in New Issue
Block a user