From: mlippautz Date: Mon, 24 Aug 2015 13:29:32 +0000 (-0700) Subject: Revert "Make sure that memory reducer makes progress in incremental marking" X-Git-Tag: upstream/4.7.83~711 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b06a6a891cc762835577bb856f8c5e8f0bf8ab31;p=platform%2Fupstream%2Fv8.git Revert "Make sure that memory reducer makes progress in incremental marking" This reverts commit 1345f811bf6a3ab9376cfbed6f08084662b32a4d. BUG= Review URL: https://codereview.chromium.org/1303333005 Cr-Commit-Position: refs/heads/master@{#30329} --- diff --git a/src/heap/heap.cc b/src/heap/heap.cc index 51d2918..9883436 100644 --- a/src/heap/heap.cc +++ b/src/heap/heap.cc @@ -4622,19 +4622,6 @@ void Heap::ReduceNewSpaceSize() { } -void Heap::FinalizeIncrementalMarkingIfComplete(const char* comment) { - if (FLAG_overapproximate_weak_closure && - (incremental_marking()->IsReadyToOverApproximateWeakClosure() || - (!incremental_marking()->weak_closure_was_overapproximated() && - mark_compact_collector_.marking_deque()->IsEmpty()))) { - OverApproximateWeakClosure(comment); - } else if (incremental_marking()->IsComplete() || - (mark_compact_collector_.marking_deque()->IsEmpty())) { - CollectAllGarbage(current_gc_flags(), comment); - } -} - - bool Heap::TryFinalizeIdleIncrementalMarking( double idle_time_in_ms, size_t size_of_objects, size_t final_incremental_mark_compact_speed_in_bytes_per_ms) { diff --git a/src/heap/heap.h b/src/heap/heap.h index f7eca40..f974c07 100644 --- a/src/heap/heap.h +++ b/src/heap/heap.h @@ -902,8 +902,6 @@ class Heap { // Notify the heap that a context has been disposed. int NotifyContextDisposed(bool dependant_context); - void FinalizeIncrementalMarkingIfComplete(const char* comment); - inline void increment_scan_on_scavenge_pages() { scan_on_scavenge_pages_++; if (FLAG_gc_verbose) { @@ -1248,8 +1246,6 @@ class Heap { bool HasHighFragmentation(); bool HasHighFragmentation(intptr_t used, intptr_t committed); - bool ShouldOptimizeForMemoryUsage() { return optimize_for_memory_usage_; } - // =========================================================================== // Initialization. =========================================================== // =========================================================================== diff --git a/src/heap/memory-reducer.cc b/src/heap/memory-reducer.cc index f3c1473..4cf8bc2 100644 --- a/src/heap/memory-reducer.cc +++ b/src/heap/memory-reducer.cc @@ -47,35 +47,12 @@ void MemoryReducer::NotifyTimer(const Event& event) { if (state_.action == kRun) { DCHECK(heap()->incremental_marking()->IsStopped()); DCHECK(FLAG_incremental_marking); + heap()->StartIdleIncrementalMarking(); if (FLAG_trace_gc_verbose) { PrintIsolate(heap()->isolate(), "Memory reducer: started GC #%d\n", state_.started_gcs); } - if (heap()->ShouldOptimizeForMemoryUsage()) { - // Do full GC if memory usage has higher priority than latency. This is - // important for background tabs that do not send idle notifications. - heap()->CollectAllGarbage(Heap::kReduceMemoryFootprintMask, - "memory reducer"); - } else { - heap()->StartIdleIncrementalMarking(); - } } else if (state_.action == kWait) { - if (!heap()->incremental_marking()->IsStopped() && - heap()->ShouldOptimizeForMemoryUsage()) { - // Make progress with pending incremental marking if memory usage has - // higher priority than latency. This is important for background tabs - // that do not send idle notifications. - const int kIncrementalMarkingDelayMs = 500; - double deadline = heap()->MonotonicallyIncreasingTimeInMs() + - kIncrementalMarkingDelayMs; - heap()->AdvanceIncrementalMarking( - 0, deadline, i::IncrementalMarking::StepActions( - i::IncrementalMarking::NO_GC_VIA_STACK_GUARD, - i::IncrementalMarking::FORCE_MARKING, - i::IncrementalMarking::FORCE_COMPLETION)); - heap()->FinalizeIncrementalMarkingIfComplete( - "Memory reducer: finalize incremental marking"); - } // Re-schedule the timer. ScheduleTimer(state_.next_gc_start_ms - event.time_ms); if (FLAG_trace_gc_verbose) {