< prev index next >

hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.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


2037   // miscellaneous bookkeeping.
2038   PreGCValues pre_gc_values;
2039   pre_compact(&pre_gc_values);
2040 
2041   // Get the compaction manager reserved for the VM thread.
2042   ParCompactionManager* const vmthread_cm =
2043     ParCompactionManager::manager_array(gc_task_manager()->workers());
2044 
2045   // Place after pre_compact() where the number of invocations is incremented.
2046   AdaptiveSizePolicyOutput(size_policy, heap->total_collections());
2047 
2048   {
2049     ResourceMark rm;
2050     HandleMark hm;
2051 
2052     // Set the number of GC threads to be used in this collection
2053     gc_task_manager()->set_active_gang();
2054     gc_task_manager()->task_idle_workers();
2055     heap->set_par_threads(gc_task_manager()->active_workers());
2056 
2057     gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps);
2058     TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
2059     GCTraceTime t1(GCCauseString("Full GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer.gc_id());
2060     TraceCollectorStats tcs(counters());
2061     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
2062 
2063     if (TraceGen1Time) accumulated_time()->start();
2064 
2065     // Let the size policy know we're starting
2066     size_policy->major_collection_begin();
2067 
2068     CodeCache::gc_prologue();
2069     Threads::gc_prologue();
2070 
2071     COMPILER2_PRESENT(DerivedPointerTable::clear());
2072 
2073     ref_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
2074     ref_processor()->setup_policy(maximum_heap_compaction);
2075 
2076     bool marked_for_unloading = false;
2077 




2037   // miscellaneous bookkeeping.
2038   PreGCValues pre_gc_values;
2039   pre_compact(&pre_gc_values);
2040 
2041   // Get the compaction manager reserved for the VM thread.
2042   ParCompactionManager* const vmthread_cm =
2043     ParCompactionManager::manager_array(gc_task_manager()->workers());
2044 
2045   // Place after pre_compact() where the number of invocations is incremented.
2046   AdaptiveSizePolicyOutput(size_policy, heap->total_collections());
2047 
2048   {
2049     ResourceMark rm;
2050     HandleMark hm;
2051 
2052     // Set the number of GC threads to be used in this collection
2053     gc_task_manager()->set_active_gang();
2054     gc_task_manager()->task_idle_workers();
2055     heap->set_par_threads(gc_task_manager()->active_workers());
2056 

2057     TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
2058     GCTraceTime t1(GCCauseString("Full GC", gc_cause), PrintGC, !PrintGCDetails, NULL, _gc_tracer.gc_id());
2059     TraceCollectorStats tcs(counters());
2060     TraceMemoryManagerStats tms(true /* Full GC */,gc_cause);
2061 
2062     if (TraceGen1Time) accumulated_time()->start();
2063 
2064     // Let the size policy know we're starting
2065     size_policy->major_collection_begin();
2066 
2067     CodeCache::gc_prologue();
2068     Threads::gc_prologue();
2069 
2070     COMPILER2_PRESENT(DerivedPointerTable::clear());
2071 
2072     ref_processor()->enable_discovery(true /*verify_disabled*/, true /*verify_no_refs*/);
2073     ref_processor()->setup_policy(maximum_heap_compaction);
2074 
2075     bool marked_for_unloading = false;
2076 


< prev index next >