Enable incremental marking when --expose-gc is turned on.
authorhpayer@chromium.org <hpayer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 20 Jan 2014 14:14:07 +0000 (14:14 +0000)
committerhpayer@chromium.org <hpayer@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 20 Jan 2014 14:14:07 +0000 (14:14 +0000)
BUG=
R=mstarzinger@chromium.org, ulan@chromium.org

Review URL: https://codereview.chromium.org/139343007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/extensions/gc-extension.cc
src/heap.cc
src/incremental-marking.cc
src/mark-compact.cc

index 1b5fb5d..c790249 100644 (file)
@@ -45,8 +45,8 @@ void GCExtension::GC(const v8::FunctionCallbackInfo<v8::Value>& args) {
     isolate->heap()->CollectGarbage(
         NEW_SPACE, "gc extension", v8::kGCCallbackFlagForced);
   } else {
-    isolate->heap()->CollectAllGarbage(
-        Heap::kNoGCFlags, "gc extension", v8::kGCCallbackFlagForced);
+    isolate->heap()->CollectAllGarbage(Heap::kAbortIncrementalMarkingMask,
+        "gc extension", v8::kGCCallbackFlagForced);
   }
 }
 
index 8b033d6..9cd6e95 100644 (file)
@@ -5619,7 +5619,7 @@ bool Heap::IdleNotification(int hint) {
     return false;
   }
 
-  if (!FLAG_incremental_marking || FLAG_expose_gc || Serializer::enabled()) {
+  if (!FLAG_incremental_marking || Serializer::enabled()) {
     return IdleGlobalGC();
   }
 
index 4223dde..1b9a28a 100644 (file)
@@ -498,12 +498,10 @@ bool IncrementalMarking::WorthActivating() {
   // debug tests run with incremental marking and some without.
   static const intptr_t kActivationThreshold = 0;
 #endif
-  // Only start incremental marking in a safe state: 1) when expose GC is
-  // deactivated, 2) when incremental marking is turned on, 3) when we are
-  // currently not in a GC, and 4) when we are currently not serializing
-  // or deserializing the heap.
-  return !FLAG_expose_gc &&
-      FLAG_incremental_marking &&
+  // Only start incremental marking in a safe state: 1) when incremental
+  // marking is turned on, 2) when we are currently not in a GC, and
+  // 3) when we are currently not serializing or deserializing the heap.
+  return FLAG_incremental_marking &&
       FLAG_incremental_marking_steps &&
       heap_->gc_state() == Heap::NOT_IN_GC &&
       !Serializer::enabled() &&
index 7a76d1b..45642c1 100644 (file)
@@ -4121,7 +4121,6 @@ void MarkCompactCollector::SweepSpaces() {
     if (FLAG_parallel_sweeping) how_to_sweep = PARALLEL_CONSERVATIVE;
     if (FLAG_concurrent_sweeping) how_to_sweep = CONCURRENT_CONSERVATIVE;
   }
-  if (FLAG_expose_gc) how_to_sweep = CONSERVATIVE;
   if (sweep_precisely_) how_to_sweep = PRECISE;
 
   // Unlink evacuation candidates before sweeper threads access the list of