Commit 6058d76a authored by Omer Katz's avatar Omer Katz Committed by Commit Bot

heap: Additional DCHECKs for concurrent marking

Bug: 986235
Change-Id: I8da55cf301177df96387e2b2aadf10f67f00ef5b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2027415
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: default avatarMichael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736349}
parent ebc603e1
...@@ -753,10 +753,13 @@ void ThreadState::AtomicPauseMarkPrologue( ...@@ -753,10 +753,13 @@ void ThreadState::AtomicPauseMarkPrologue(
available_concurrent_marking_task_ids_.clear(); available_concurrent_marking_task_ids_.clear();
} }
#if DCHECK_IS_ON() #if DCHECK_IS_ON()
MarkingWorklist* worklist = Heap().GetMarkingWorklist(); MarkingWorklist* marking_worklist = Heap().GetMarkingWorklist();
WriteBarrierWorklist* write_barrier_worklist =
Heap().GetWriteBarrierWorklist();
for (int concurrent_task = WorklistTaskId::ConcurrentThreadBase; for (int concurrent_task = WorklistTaskId::ConcurrentThreadBase;
concurrent_task < worklist->num_tasks(); ++concurrent_task) { concurrent_task < marking_worklist->num_tasks(); ++concurrent_task) {
DCHECK(worklist->IsLocalEmpty(concurrent_task)); DCHECK(marking_worklist->IsLocalEmpty(concurrent_task));
DCHECK(write_barrier_worklist->IsLocalEmpty(concurrent_task));
} }
#endif // DCHECK_IS_ON() #endif // DCHECK_IS_ON()
DisableIncrementalMarkingBarrier(); DisableIncrementalMarkingBarrier();
...@@ -1184,6 +1187,8 @@ void ThreadState::IncrementalMarkingStart(BlinkGC::GCReason reason) { ...@@ -1184,6 +1187,8 @@ void ThreadState::IncrementalMarkingStart(BlinkGC::GCReason reason) {
const uint8_t max_concurrent_task_id = const uint8_t max_concurrent_task_id =
WorklistTaskId::ConcurrentThreadBase + WorklistTaskId::ConcurrentThreadBase +
kNumberOfConcurrentMarkingTasks; kNumberOfConcurrentMarkingTasks;
DCHECK_EQ(Heap().GetMarkingWorklist()->num_tasks(),
Heap().GetWriteBarrierWorklist()->num_tasks());
DCHECK_LE(max_concurrent_task_id, DCHECK_LE(max_concurrent_task_id,
Heap().GetMarkingWorklist()->num_tasks()); Heap().GetMarkingWorklist()->num_tasks());
// Initialize concurrent marking task ids. // Initialize concurrent marking task ids.
......
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