Commit 0bf9c60c authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[heap] Unprotect code pages on demand in MinorMC

This reduces average pause of MinorMC in Richards benchmark from 0.32ms
to 0.25ms:

baseline pause
  len: 22
  min: 0.3
  max: 0.6
  avg: 0.322727272727
  [0,5[: 22

pause
  len: 22
  min: 0.2
  max: 0.7
  avg: 0.254545454545
  [0,5[: 22

Bug: chromium:651354
Change-Id: I701ca800d7c6986534d1de2e3051476e91a88d7d
Reviewed-on: https://chromium-review.googlesource.com/1055507Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53125}
parent fad99f5e
......@@ -1884,7 +1884,6 @@ void Heap::MinorMarkCompact() {
AlwaysAllocateScope always_allocate(isolate());
IncrementalMarking::PauseBlackAllocationScope pause_black_allocation(
incremental_marking());
CodeSpaceMemoryModificationScope code_modifcation(this);
ConcurrentMarking::PauseScope pause_scope(concurrent_marking());
minor_mark_compact_collector()->CollectGarbage();
......
......@@ -2810,6 +2810,7 @@ class RememberedSetUpdatingItem : public UpdatingItem {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.gc"),
"RememberedSetUpdatingItem::Process");
base::LockGuard<base::Mutex> guard(chunk_->mutex());
CodePageMemoryModificationScope memory_modification_scope(chunk_);
UpdateUntypedPointers();
UpdateTypedPointers();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment