< prev index next >

src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page




1479   // lists would require special handling.
1480   ref_processor()->disable_discovery();
1481   ref_processor()->abandon_partial_discovery();
1482   ref_processor()->verify_no_references_recorded();
1483 
1484   if (first_state > Idling) {
1485     save_heap_summary();
1486   }
1487 
1488   do_compaction_work(clear_all_soft_refs);
1489 
1490   // Has the GC time limit been exceeded?
1491   size_t max_eden_size = _young_gen->max_eden_size();
1492   GCCause::Cause gc_cause = heap->gc_cause();
1493   size_policy()->check_gc_overhead_limit(_young_gen->used(),
1494                                          _young_gen->eden()->used(),
1495                                          _cmsGen->max_capacity(),
1496                                          max_eden_size,
1497                                          full,
1498                                          gc_cause,
1499                                          heap->collector_policy());
1500 
1501   // Reset the expansion cause, now that we just completed
1502   // a collection cycle.
1503   clear_expansion_cause();
1504   _foregroundGCIsActive = false;
1505   return;
1506 }
1507 
1508 // Resize the tenured generation
1509 // after obtaining the free list locks for the
1510 // two generations.
1511 void CMSCollector::compute_new_size() {
1512   assert_locked_or_safepoint(Heap_lock);
1513   FreelistLocker z(this);
1514   MetaspaceGC::compute_new_size();
1515   _cmsGen->compute_new_size_free_list();
1516 }
1517 
1518 // A work method used by the foreground collector to do
1519 // a mark-sweep-compact.




1479   // lists would require special handling.
1480   ref_processor()->disable_discovery();
1481   ref_processor()->abandon_partial_discovery();
1482   ref_processor()->verify_no_references_recorded();
1483 
1484   if (first_state > Idling) {
1485     save_heap_summary();
1486   }
1487 
1488   do_compaction_work(clear_all_soft_refs);
1489 
1490   // Has the GC time limit been exceeded?
1491   size_t max_eden_size = _young_gen->max_eden_size();
1492   GCCause::Cause gc_cause = heap->gc_cause();
1493   size_policy()->check_gc_overhead_limit(_young_gen->used(),
1494                                          _young_gen->eden()->used(),
1495                                          _cmsGen->max_capacity(),
1496                                          max_eden_size,
1497                                          full,
1498                                          gc_cause,
1499                                          heap->soft_ref_policy());
1500 
1501   // Reset the expansion cause, now that we just completed
1502   // a collection cycle.
1503   clear_expansion_cause();
1504   _foregroundGCIsActive = false;
1505   return;
1506 }
1507 
1508 // Resize the tenured generation
1509 // after obtaining the free list locks for the
1510 // two generations.
1511 void CMSCollector::compute_new_size() {
1512   assert_locked_or_safepoint(Heap_lock);
1513   FreelistLocker z(this);
1514   MetaspaceGC::compute_new_size();
1515   _cmsGen->compute_new_size_free_list();
1516 }
1517 
1518 // A work method used by the foreground collector to do
1519 // a mark-sweep-compact.


< prev index next >