[heap] Use global safepoint with shared space incremental marking start
Use a global safepoint when starting incremental marking in the shared space isolate. This is required to start black allocation in all shared LABs of all client isolates. Bug: v8:13267 Change-Id: I4995dded2546f090cb3b074ee808992e3eb5f741 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3934103 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#83566}
This commit is contained in:
parent
f29f082eef
commit
03e7db10ce
@ -1840,13 +1840,19 @@ void Heap::StartIncrementalMarking(int gc_flags,
|
|||||||
CompleteSweepingFull();
|
CompleteSweepingFull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
base::Optional<GlobalSafepointScope> global_safepoint_scope;
|
||||||
base::Optional<SafepointScope> safepoint_scope;
|
base::Optional<SafepointScope> safepoint_scope;
|
||||||
|
|
||||||
{
|
{
|
||||||
AllowGarbageCollection allow_shared_gc;
|
AllowGarbageCollection allow_shared_gc;
|
||||||
IgnoreLocalGCRequests ignore_gc_requests(this);
|
IgnoreLocalGCRequests ignore_gc_requests(this);
|
||||||
|
|
||||||
|
if (isolate()->is_shared_heap_isolate()) {
|
||||||
|
global_safepoint_scope.emplace(isolate());
|
||||||
|
} else {
|
||||||
safepoint_scope.emplace(this);
|
safepoint_scope.emplace(this);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
VerifyCountersAfterSweeping();
|
VerifyCountersAfterSweeping();
|
||||||
|
Loading…
Reference in New Issue
Block a user