Commit fa4bcc4d authored by Dominik Inführ's avatar Dominik Inführ Committed by Commit Bot

[heap] Add GCTracer for updating refs after scavenge

Updating refs to new space in internal data structures could take some
time, so also measure this.

Bug: chromium:844008
Change-Id: I9f5af4d09f8ef580ca0ad0019cfc78a994d62ffd
Reviewed-on: https://chromium-review.googlesource.com/1128889Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@google.com>
Cr-Commit-Position: refs/heads/master@{#54328}
parent 2f9aad53
...@@ -375,6 +375,7 @@ ...@@ -375,6 +375,7 @@
F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS) \ F(SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS) \
F(SCAVENGER_SCAVENGE_PARALLEL) \ F(SCAVENGER_SCAVENGE_PARALLEL) \
F(SCAVENGER_SCAVENGE_ROOTS) \ F(SCAVENGER_SCAVENGE_ROOTS) \
F(SCAVENGER_SCAVENGE_UPDATE_REFS) \
F(SCAVENGER_SCAVENGE_WEAK) F(SCAVENGER_SCAVENGE_WEAK)
#define TRACER_BACKGROUND_SCOPES(F) \ #define TRACER_BACKGROUND_SCOPES(F) \
......
...@@ -532,6 +532,7 @@ void GCTracer::PrintNVP() const { ...@@ -532,6 +532,7 @@ void GCTracer::PrintNVP() const {
"scavenge.weak_global_handles.identify=%.2f " "scavenge.weak_global_handles.identify=%.2f "
"scavenge.weak_global_handles.process=%.2f " "scavenge.weak_global_handles.process=%.2f "
"scavenge.parallel=%.2f " "scavenge.parallel=%.2f "
"scavenge.update_refs=%.2f "
"background.scavenge.parallel=%.2f " "background.scavenge.parallel=%.2f "
"background.array_buffer_free=%.2f " "background.array_buffer_free=%.2f "
"background.store_buffer=%.2f " "background.store_buffer=%.2f "
...@@ -580,6 +581,7 @@ void GCTracer::PrintNVP() const { ...@@ -580,6 +581,7 @@ void GCTracer::PrintNVP() const {
current_ current_
.scopes[Scope::SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS], .scopes[Scope::SCAVENGER_SCAVENGE_WEAK_GLOBAL_HANDLES_PROCESS],
current_.scopes[Scope::SCAVENGER_SCAVENGE_PARALLEL], current_.scopes[Scope::SCAVENGER_SCAVENGE_PARALLEL],
current_.scopes[Scope::SCAVENGER_SCAVENGE_UPDATE_REFS],
current_.scopes[Scope::SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL], current_.scopes[Scope::SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL],
current_.scopes[Scope::BACKGROUND_ARRAY_BUFFER_FREE], current_.scopes[Scope::BACKGROUND_ARRAY_BUFFER_FREE],
current_.scopes[Scope::BACKGROUND_STORE_BUFFER], current_.scopes[Scope::BACKGROUND_STORE_BUFFER],
......
...@@ -2242,10 +2242,14 @@ void Heap::Scavenge() { ...@@ -2242,10 +2242,14 @@ void Heap::Scavenge() {
} }
} }
{
// Update references into new space
TRACE_GC(tracer(), GCTracer::Scope::SCAVENGER_SCAVENGE_UPDATE_REFS);
UpdateNewSpaceReferencesInExternalStringTable( UpdateNewSpaceReferencesInExternalStringTable(
&UpdateNewSpaceReferenceInExternalStringTableEntry); &UpdateNewSpaceReferenceInExternalStringTableEntry);
incremental_marking()->UpdateMarkingWorklistAfterScavenge(); incremental_marking()->UpdateMarkingWorklistAfterScavenge();
}
if (FLAG_concurrent_marking) { if (FLAG_concurrent_marking) {
// Ensure that concurrent marker does not track pages that are // Ensure that concurrent marker does not track pages that are
......
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