Index: src/heap/incremental-marking.h |
diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h |
index 9886f318387faa74d8fb550188648b9047d42651..d15ec37363fbf26216dd9556ffebc62fe4ce5e7e 100644 |
--- a/src/heap/incremental-marking.h |
+++ b/src/heap/incremental-marking.h |
@@ -20,6 +20,8 @@ namespace internal { |
class MarkBit; |
class PagedSpace; |
+enum class StepOrigin { kV8, kTask }; |
+ |
class IncrementalMarking { |
public: |
enum State { STOPPED, SWEEPING, MARKING, COMPLETE }; |
@@ -97,7 +99,8 @@ class IncrementalMarking { |
// anymore because a single step would exceed the deadline. |
double AdvanceIncrementalMarking(double deadline_in_ms, |
CompletionAction completion_action, |
- ForceCompletionAction force_completion); |
+ ForceCompletionAction force_completion, |
+ StepOrigin step_origin); |
// It's hard to know how much work the incremental marker should do to make |
// progress in the face of the mutator creating new work for it. We start |
@@ -129,7 +132,7 @@ class IncrementalMarking { |
void NotifyAllocatedBytes(intptr_t allocated_bytes); |
void Step(intptr_t bytes_to_process, CompletionAction action, |
- ForceCompletionAction completion); |
+ ForceCompletionAction completion, StepOrigin origin); |
inline void RestartIfNotMarking(); |
@@ -294,6 +297,7 @@ class IncrementalMarking { |
intptr_t bytes_scanned_; |
intptr_t allocated_; |
intptr_t write_barriers_invoked_since_last_step_; |
+ intptr_t bytes_marked_ahead_of_schedule_; |
size_t idle_marking_delay_counter_; |
int unscanned_bytes_of_large_object_; |