equal
deleted
inserted
replaced
1602 ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs); |
1602 ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs); |
1603 resize_all_tlabs(); |
1603 resize_all_tlabs(); |
1604 } |
1604 } |
1605 |
1605 |
1606 metrics.snap_after(); |
1606 metrics.snap_after(); |
1607 metrics.print(); |
1607 |
1608 |
1608 if (metrics.is_good_progress()) { |
1609 if (metrics.is_good_progress("Full GC")) { |
|
1610 _progress_last_gc.set(); |
1609 _progress_last_gc.set(); |
1611 } else { |
1610 } else { |
1612 // Nothing to do. Tell the allocation path that we have failed to make |
1611 // Nothing to do. Tell the allocation path that we have failed to make |
1613 // progress, and it can finally fail. |
1612 // progress, and it can finally fail. |
1614 _progress_last_gc.unset(); |
1613 _progress_last_gc.unset(); |
1737 if (VerifyAfterGC) { |
1736 if (VerifyAfterGC) { |
1738 Universe::verify(); |
1737 Universe::verify(); |
1739 } |
1738 } |
1740 |
1739 |
1741 metrics.snap_after(); |
1740 metrics.snap_after(); |
1742 metrics.print(); |
|
1743 |
1741 |
1744 // Check for futility and fail. There is no reason to do several back-to-back Degenerated cycles, |
1742 // Check for futility and fail. There is no reason to do several back-to-back Degenerated cycles, |
1745 // because that probably means the heap is overloaded and/or fragmented. |
1743 // because that probably means the heap is overloaded and/or fragmented. |
1746 if (!metrics.is_good_progress("Degenerated GC")) { |
1744 if (!metrics.is_good_progress()) { |
1747 _progress_last_gc.unset(); |
1745 _progress_last_gc.unset(); |
1748 cancel_gc(GCCause::_shenandoah_upgrade_to_full_gc); |
1746 cancel_gc(GCCause::_shenandoah_upgrade_to_full_gc); |
1749 op_degenerated_futile(); |
1747 op_degenerated_futile(); |
1750 } else { |
1748 } else { |
1751 _progress_last_gc.set(); |
1749 _progress_last_gc.set(); |