Add a trace event when pausing/preempting concurrent marking.

This will let us identify in traces whether unwinding after receiving
the preemption event is slower than desired and should be optimized.

Adding it to pausing while working on removing it in
https://chromium-review.googlesource.com/c/v8/v8/+/922103
will allow gathering traces that highlight the issue.

R=mlippautz@chromium.org

Bug: chromium:812178
Change-Id: I0555c6825e0792769c9ae2d748d7cc35df4f6fed
Reviewed-on: https://chromium-review.googlesource.com/924122
Commit-Queue: Gabriel Charette <gab@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51354}
This commit is contained in:
Gabriel Charette 2018-02-19 11:07:01 +01:00 committed by Commit Bot
parent f4b4109936
commit 4b49f84434

View File

@ -479,8 +479,12 @@ void ConcurrentMarking::Run(int task_id, TaskState* task_state) {
base::AsAtomicWord::Relaxed_Store<size_t>(&task_state->marked_bytes,
marked_bytes);
if (task_state->interrupt_request.Value()) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.gc"),
"ConcurrentMarking::Run Paused");
task_state->interrupt_condition.Wait(&task_state->lock);
} else if (task_state->preemption_request.Value()) {
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.gc"),
"ConcurrentMarking::Run Preempted");
break;
}
}