< prev index next >

hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

Print this page
rev 7125 : 7176220: 'Full GC' events miss date stamp information occasionally
Summary: Move date stamp logic into GCTraceTime
Reviewed-by: brutisso, tschatzl


6617     assert(_collectorState == Resetting, "just checking");
6618     assert_lock_strong(bitMapLock());
6619     _markBitMap.clear_all();
6620     _collectorState = Idling;
6621   }
6622 
6623   // Stop incremental mode after a cycle completes, so that any future cycles
6624   // are triggered by allocation.
6625   stop_icms();
6626 
6627   NOT_PRODUCT(
6628     if (RotateCMSCollectionTypes) {
6629       _cmsGen->rotate_debug_collection_type();
6630     }
6631   )
6632 
6633   register_gc_end();
6634 }
6635 
6636 void CMSCollector::do_CMS_operation(CMS_op_type op, GCCause::Cause gc_cause) {
6637   gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps);
6638   TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
6639   GCTraceTime t(GCCauseString("GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer_cm->gc_id());
6640   TraceCollectorStats tcs(counters());
6641 
6642   switch (op) {
6643     case CMS_op_checkpointRootsInitial: {
6644       SvcGCMarker sgcm(SvcGCMarker::OTHER);
6645       checkpointRootsInitial(true);       // asynch
6646       if (PrintGC) {
6647         _cmsGen->printOccupancy("initial-mark");
6648       }
6649       break;
6650     }
6651     case CMS_op_checkpointRootsFinal: {
6652       SvcGCMarker sgcm(SvcGCMarker::OTHER);
6653       checkpointRootsFinal(true,    // asynch
6654                            false,   // !clear_all_soft_refs
6655                            false);  // !init_mark_was_synchronous
6656       if (PrintGC) {
6657         _cmsGen->printOccupancy("remark");




6617     assert(_collectorState == Resetting, "just checking");
6618     assert_lock_strong(bitMapLock());
6619     _markBitMap.clear_all();
6620     _collectorState = Idling;
6621   }
6622 
6623   // Stop incremental mode after a cycle completes, so that any future cycles
6624   // are triggered by allocation.
6625   stop_icms();
6626 
6627   NOT_PRODUCT(
6628     if (RotateCMSCollectionTypes) {
6629       _cmsGen->rotate_debug_collection_type();
6630     }
6631   )
6632 
6633   register_gc_end();
6634 }
6635 
6636 void CMSCollector::do_CMS_operation(CMS_op_type op, GCCause::Cause gc_cause) {

6637   TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
6638   GCTraceTime t(GCCauseString("GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer_cm->gc_id());
6639   TraceCollectorStats tcs(counters());
6640 
6641   switch (op) {
6642     case CMS_op_checkpointRootsInitial: {
6643       SvcGCMarker sgcm(SvcGCMarker::OTHER);
6644       checkpointRootsInitial(true);       // asynch
6645       if (PrintGC) {
6646         _cmsGen->printOccupancy("initial-mark");
6647       }
6648       break;
6649     }
6650     case CMS_op_checkpointRootsFinal: {
6651       SvcGCMarker sgcm(SvcGCMarker::OTHER);
6652       checkpointRootsFinal(true,    // asynch
6653                            false,   // !clear_all_soft_refs
6654                            false);  // !init_mark_was_synchronous
6655       if (PrintGC) {
6656         _cmsGen->printOccupancy("remark");


< prev index next >