< prev index next >

src/hotspot/share/gc/shared/genCollectedHeap.cpp

Print this page
rev 52941 : 8215221: Serial GC misreports young GC time
Reported-by: XXX

@@ -573,19 +573,11 @@
 
     bool complete = full && (max_generation == OldGen);
     bool old_collects_young = complete && !ScavengeBeforeFullGC;
     bool do_young_collection = !old_collects_young && _young_gen->should_collect(full, size, is_tlab);
 
-    FormatBuffer<> gc_string("%s", "Pause ");
-    if (do_young_collection) {
-      gc_string.append("Young");
-    } else {
-      gc_string.append("Full");
-    }
-
     GCTraceCPUTime tcpu;
-    GCTraceTime(Info, gc) t(gc_string, NULL, gc_cause(), true);
 
     gc_prologue(complete);
     increment_total_collections(complete);
 
     size_t young_prev_used = _young_gen->used();

@@ -600,10 +592,12 @@
       if (run_verification && VerifyGCLevel <= 0 && VerifyBeforeGC) {
         prepare_for_verify();
         prepared_for_verification = true;
       }
 
+      GCTraceTime(Info, gc) t("Pause Young", NULL, gc_cause(), true);
+
       collect_generation(_young_gen,
                          full,
                          size,
                          is_tlab,
                          run_verification && VerifyGCLevel <= 0,

@@ -635,10 +629,11 @@
         GCIdMark gc_id_mark;
         GCTraceTime(Info, gc) t("Pause Full", NULL, gc_cause(), true);
         collect_generation(_old_gen, full, size, is_tlab, run_verification && VerifyGCLevel <= 1, do_clear_all_soft_refs, true);
       } else {
         // No young GC done. Use the same GC id as was set up earlier in this method.
+        GCTraceTime(Info, gc) t("Pause Full", NULL, gc_cause(), true);
         collect_generation(_old_gen, full, size, is_tlab, run_verification && VerifyGCLevel <= 1, do_clear_all_soft_refs, true);
       }
 
       must_restore_marks_for_biased_locking = true;
       collected_old = true;
< prev index next >