8242082: Shenandoah: Purge Traversal mode

Reviewed-by: shade
This commit is contained in:
Roman Kennke 2020-04-03 15:06:08 +02:00
parent c09b0a7793
commit 553ea1e891
82 changed files with 25 additions and 3158 deletions

View file

@ -32,7 +32,6 @@
#include "gc/shenandoah/shenandoahHeuristics.hpp"
#include "gc/shenandoah/shenandoahMonitoringSupport.hpp"
#include "gc/shenandoah/shenandoahControlThread.hpp"
#include "gc/shenandoah/shenandoahTraversalGC.hpp"
#include "gc/shenandoah/shenandoahUtils.hpp"
#include "gc/shenandoah/shenandoahVMOperations.hpp"
#include "gc/shenandoah/shenandoahWorkerPolicy.hpp"
@ -70,10 +69,8 @@ void ShenandoahPeriodicSATBFlushTask::task() {
void ShenandoahControlThread::run_service() {
ShenandoahHeap* heap = ShenandoahHeap::heap();
GCMode default_mode = heap->is_traversal_mode() ?
concurrent_traversal : concurrent_normal;
GCCause::Cause default_cause = heap->is_traversal_mode() ?
GCCause::_shenandoah_traversal_gc : GCCause::_shenandoah_concurrent_gc;
GCMode default_mode = concurrent_normal;
GCCause::Cause default_cause = GCCause::_shenandoah_concurrent_gc;
int sleep = ShenandoahControlIntervalMin;
double last_shrink_time = os::elapsedTime();
@ -192,9 +189,6 @@ void ShenandoahControlThread::run_service() {
}
switch (mode) {
case concurrent_traversal:
service_concurrent_traversal_cycle(cause);
break;
case concurrent_normal:
service_concurrent_normal_cycle(cause);
break;
@ -287,31 +281,6 @@ void ShenandoahControlThread::run_service() {
}
}
void ShenandoahControlThread::service_concurrent_traversal_cycle(GCCause::Cause cause) {
GCIdMark gc_id_mark;
ShenandoahGCSession session(cause);
ShenandoahHeap* heap = ShenandoahHeap::heap();
TraceCollectorStats tcs(heap->monitoring_support()->concurrent_collection_counters());
// Reset for upcoming cycle
heap->entry_reset();
heap->vmop_entry_init_traversal();
if (check_cancellation_or_degen(ShenandoahHeap::_degenerated_traversal)) return;
heap->entry_traversal();
if (check_cancellation_or_degen(ShenandoahHeap::_degenerated_traversal)) return;
heap->vmop_entry_final_traversal();
heap->entry_cleanup();
heap->heuristics()->record_success_concurrent();
heap->shenandoah_policy()->record_success_concurrent();
}
void ShenandoahControlThread::service_concurrent_normal_cycle(GCCause::Cause cause) {
// Normal cycle goes via all concurrent phases. If allocation failure (af) happens during
// any of the concurrent phases, it first degrades to Degenerated GC and completes GC there.