Revision: 22854
Author:   [email protected]
Date:     Tue Aug  5 09:40:09 2014 UTC
Log:      Force incremental marking when called from idle notification.

BUG=
[email protected], [email protected]

Review URL: https://codereview.chromium.org/426243002
http://code.google.com/p/v8/source/detail?r=22854

Modified:
 /branches/bleeding_edge/src/heap/heap.cc
 /branches/bleeding_edge/src/heap/incremental-marking.cc
 /branches/bleeding_edge/src/heap/incremental-marking.h

=======================================
--- /branches/bleeding_edge/src/heap/heap.cc    Tue Aug  5 08:18:22 2014 UTC
+++ /branches/bleeding_edge/src/heap/heap.cc    Tue Aug  5 09:40:09 2014 UTC
@@ -4169,7 +4169,7 @@

 void Heap::AdvanceIdleIncrementalMarking(intptr_t step_size) {
   incremental_marking()->Step(step_size,
-                              IncrementalMarking::NO_GC_VIA_STACK_GUARD);
+ IncrementalMarking::NO_GC_VIA_STACK_GUARD, true);

   if (incremental_marking()->IsComplete()) {
     bool uncommit = false;
=======================================
--- /branches/bleeding_edge/src/heap/incremental-marking.cc Tue Aug 5 08:18:22 2014 UTC +++ /branches/bleeding_edge/src/heap/incremental-marking.cc Tue Aug 5 09:40:09 2014 UTC
@@ -821,8 +821,8 @@
 }


-void IncrementalMarking::Step(intptr_t allocated_bytes,
-                              CompletionAction action) {
+void IncrementalMarking::Step(intptr_t allocated_bytes, CompletionAction action,
+                              bool force_marking) {
   if (heap_->gc_state() != Heap::NOT_IN_GC || !FLAG_incremental_marking ||
       !FLAG_incremental_marking_steps ||
       (state_ != SWEEPING && state_ != MARKING)) {
@@ -831,7 +831,7 @@

   allocated_ += allocated_bytes;

-  if (allocated_ < kAllocatedThreshold &&
+  if (!force_marking && allocated_ < kAllocatedThreshold &&
       write_barriers_invoked_since_last_step_ <
           kWriteBarriersInvokedThreshold) {
     return;
=======================================
--- /branches/bleeding_edge/src/heap/incremental-marking.h Tue Aug 5 08:18:22 2014 UTC +++ /branches/bleeding_edge/src/heap/incremental-marking.h Tue Aug 5 09:40:09 2014 UTC
@@ -83,7 +83,8 @@

   void OldSpaceStep(intptr_t allocated);

-  void Step(intptr_t allocated, CompletionAction action);
+  void Step(intptr_t allocated, CompletionAction action,
+            bool force_marking = false);

   inline void RestartIfNotMarking() {
     if (state_ == COMPLETE) {

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to