8153333: [REDO] STW phases at Concurrent GC should count in PerfCounte
authorysuenaga
Fri, 09 Mar 2018 23:13:37 +0900
changeset 49377 ecd91135d645
parent 49376 7cd503c499a0
child 49378 1873626a5d67
8153333: [REDO] STW phases at Concurrent GC should count in PerfCounte Reviewed-by: sjohanss, tschatzl
src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp
src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp
src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
src/hotspot/share/gc/g1/g1MonitoringSupport.cpp
src/hotspot/share/gc/g1/g1MonitoringSupport.hpp
src/hotspot/share/gc/g1/vm_operations_g1.cpp
src/hotspot/share/gc/shared/vmGCOperations.hpp
src/jdk.jcmd/share/classes/sun/tools/jstat/resources/jstat_options
test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java
test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcResults.java
test/jdk/sun/tools/jstat/gcCapacityOutput1.awk
test/jdk/sun/tools/jstat/gcCauseOutput1.awk
test/jdk/sun/tools/jstat/gcMetaCapacityOutput1.awk
test/jdk/sun/tools/jstat/gcNewCapacityOutput1.awk
test/jdk/sun/tools/jstat/gcOldCapacityOutput1.awk
test/jdk/sun/tools/jstat/gcOldOutput1.awk
test/jdk/sun/tools/jstat/gcOutput1.awk
test/jdk/sun/tools/jstat/lineCounts1.awk
test/jdk/sun/tools/jstat/lineCounts2.awk
test/jdk/sun/tools/jstat/lineCounts3.awk
test/jdk/sun/tools/jstat/lineCounts4.awk
test/jdk/sun/tools/jstat/timeStamp1.awk
test/jdk/sun/tools/jstatd/JstatGCUtilParser.java
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp	Fri Mar 09 23:13:37 2018 +0900
@@ -628,6 +628,7 @@
 
   NOT_PRODUCT(_overflow_counter = CMSMarkStackOverflowInterval;)
   _gc_counters = new CollectorCounters("CMS", 1);
+  _cgc_counters = new CollectorCounters("CMS stop-the-world phases", 2);
   _completed_initialization = true;
   _inter_sweep_timer.start();  // start of time
 }
@@ -5553,18 +5554,18 @@
 
 void CMSCollector::do_CMS_operation(CMS_op_type op, GCCause::Cause gc_cause) {
   GCTraceCPUTime tcpu;
-  TraceCollectorStats tcs(counters());
+  TraceCollectorStats tcs_cgc(cgc_counters());
 
   switch (op) {
     case CMS_op_checkpointRootsInitial: {
       GCTraceTime(Info, gc) t("Pause Initial Mark", NULL, GCCause::_no_gc, true);
-      SvcGCMarker sgcm(SvcGCMarker::OTHER);
+      SvcGCMarker sgcm(SvcGCMarker::CONCURRENT);
       checkpointRootsInitial();
       break;
     }
     case CMS_op_checkpointRootsFinal: {
       GCTraceTime(Info, gc) t("Pause Remark", NULL, GCCause::_no_gc, true);
-      SvcGCMarker sgcm(SvcGCMarker::OTHER);
+      SvcGCMarker sgcm(SvcGCMarker::CONCURRENT);
       checkpointRootsFinal();
       break;
     }
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp	Fri Mar 09 23:13:37 2018 +0900
@@ -553,6 +553,7 @@
 
   // Performance Counters
   CollectorCounters* _gc_counters;
+  CollectorCounters* _cgc_counters;
 
   // Initialization Errors
   bool _completed_initialization;
@@ -927,7 +928,8 @@
   NOT_PRODUCT(bool is_cms_reachable(HeapWord* addr);)
 
   // Performance Counter Support
-  CollectorCounters* counters()    { return _gc_counters; }
+  CollectorCounters* counters()     { return _gc_counters; }
+  CollectorCounters* cgc_counters() { return _cgc_counters; }
 
   // Timer stuff
   void    startTimer() { assert(!_timer.is_active(), "Error"); _timer.start();   }
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1013,8 +1013,6 @@
     return;
   }
 
-  SvcGCMarker sgcm(SvcGCMarker::OTHER);
-
   if (VerifyDuringGC) {
     g1h->verifier()->verify(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "During GC (before)");
   }
--- a/src/hotspot/share/gc/g1/g1MonitoringSupport.cpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1MonitoringSupport.cpp	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -77,6 +77,7 @@
   _g1h(g1h),
   _incremental_collection_counters(NULL),
   _full_collection_counters(NULL),
+  _conc_collection_counters(NULL),
   _old_collection_counters(NULL),
   _old_space_counters(NULL),
   _young_collection_counters(NULL),
@@ -105,6 +106,10 @@
   // old generation collection.
   _full_collection_counters =
     new CollectorCounters("G1 stop-the-world full collections", 1);
+  //   name "collector.2".  In a generational collector this would be the
+  // STW phases in concurrent collection.
+  _conc_collection_counters =
+    new CollectorCounters("G1 stop-the-world phases", 2);
 
   // timer sampling for all counters supporting sampling only update the
   // used value.  See the take_sample() method.  G1 requires both used and
--- a/src/hotspot/share/gc/g1/g1MonitoringSupport.hpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/g1/g1MonitoringSupport.hpp	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -124,6 +124,8 @@
   CollectorCounters*   _incremental_collection_counters;
   //  full stop-the-world collections
   CollectorCounters*   _full_collection_counters;
+  //  stop-the-world phases in G1
+  CollectorCounters*   _conc_collection_counters;
   //  young collection set counters.  The _eden_counters,
   // _from_counters, and _to_counters are associated with
   // this "generational" counter.
@@ -212,6 +214,9 @@
   CollectorCounters* full_collection_counters() {
     return _full_collection_counters;
   }
+  CollectorCounters* conc_collection_counters() {
+    return _conc_collection_counters;
+  }
   GenerationCounters* young_collection_counters() {
     return _young_collection_counters;
   }
--- a/src/hotspot/share/gc/g1/vm_operations_g1.cpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/g1/vm_operations_g1.cpp	Fri Mar 09 23:13:37 2018 +0900
@@ -204,6 +204,8 @@
   GCTraceCPUTime tcpu;
   G1CollectedHeap* g1h = G1CollectedHeap::heap();
   GCTraceTime(Info, gc) t(_printGCMessage, g1h->concurrent_mark()->gc_timer_cm(), GCCause::_no_gc, true);
+  TraceCollectorStats tcs(g1h->g1mm()->conc_collection_counters());
+  SvcGCMarker sgcm(SvcGCMarker::CONCURRENT);
   IsGCActiveMark x;
   _cl->do_void();
 }
--- a/src/hotspot/share/gc/shared/vmGCOperations.hpp	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/hotspot/share/gc/shared/vmGCOperations.hpp	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -227,7 +227,7 @@
  private:
   JvmtiGCMarker _jgcm;
  public:
-  typedef enum { MINOR, FULL, OTHER } reason_type;
+  typedef enum { MINOR, FULL, CONCURRENT, OTHER } reason_type;
 
   SvcGCMarker(reason_type reason ) {
     VM_GC_Operation::notify_gc_begin(reason == FULL);
--- a/src/jdk.jcmd/share/classes/sun/tools/jstat/resources/jstat_options	Mon Mar 12 12:02:20 2018 +0100
+++ b/src/jdk.jcmd/share/classes/sun/tools/jstat/resources/jstat_options	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -255,8 +255,24 @@
     format "0.000"
   }
   column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align center
+    width 5
+    scale raw
+    format "0"
+  }
+  column {
+    header "^CGCT^"	/* Concurrent Garbage Collection Time (STW phase) */
+    data sun.gc.collector.2.time/sun.os.hrt.frequency
+    align right
+    width 8
+    scale sec
+    format "0.000"
+  }
+  column {
     header "^GCT^"	/* Total Garbage Collection Time */
-    data (sun.gc.collector.0.time + sun.gc.collector.1.time)/sun.os.hrt.frequency
+    data (sun.gc.collector.0.time + sun.gc.collector.1.time + sun.gc.collector.2.time)/sun.os.hrt.frequency
     align right
     width 8
     scale sec
@@ -408,6 +424,14 @@
     scale raw
     format "0"
   }
+  column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
 }
 
 option gccause {
@@ -491,8 +515,24 @@
     format "0.000"
   }
   column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
+  column {
+    header "^CGCT^"	/* Concurrent Garbage Collection Time (STW phase) */
+    data sun.gc.collector.2.time/sun.os.hrt.frequency
+    align right
+    width 8
+    scale sec
+    format "0.000"
+  }
+  column {
     header "^GCT^"	/* Total Garbage Collection Time */
-    data (sun.gc.collector.0.time + sun.gc.collector.1.time)/sun.os.hrt.frequency
+    data (sun.gc.collector.0.time + sun.gc.collector.1.time + sun.gc.collector.2.time)/sun.os.hrt.frequency
     align right
     width 8
     scale sec
@@ -690,6 +730,14 @@
     scale raw
     format "0"
   }
+  column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
 }
 
 option gcold {
@@ -765,8 +813,24 @@
     format "0.000"
   }
   column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
+  column {
+    header "^CGCT^"	/* Concurrent Garbage Collection Time (STW phase) */
+    data sun.gc.collector.2.time/sun.os.hrt.frequency
+    align right
+    width 8
+    scale sec
+    format "0.000"
+  }
+  column {
     header "^GCT^"	/* Total Garbage Collection Time */
-    data (sun.gc.collector.0.time + sun.gc.collector.1.time)/sun.os.hrt.frequency
+    data (sun.gc.collector.0.time + sun.gc.collector.1.time + sun.gc.collector.2.time)/sun.os.hrt.frequency
     align right
     width 8
     scale sec
@@ -831,8 +895,24 @@
     format "0.000"
   }
   column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
+  column {
+    header "^CGCT^"	/* Concurrent Garbage Collection Time (STW phase) */
+    data sun.gc.collector.2.time/sun.os.hrt.frequency
+    align right
+    width 8
+    scale sec
+    format "0.000"
+  }
+  column {
     header "^GCT^"	/* Total Garbage Collection Time */
-    data (sun.gc.collector.0.time + sun.gc.collector.1.time)/sun.os.hrt.frequency
+    data (sun.gc.collector.0.time + sun.gc.collector.1.time + sun.gc.collector.2.time)/sun.os.hrt.frequency
     align right
     width 8
     scale sec
@@ -913,8 +993,24 @@
     format "0.000"
   }
   column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
+  column {
+    header "^CGCT^"	/* Concurrent Garbage Collection Time (STW phase) */
+    data sun.gc.collector.2.time/sun.os.hrt.frequency
+    align right
+    width 8
+    scale sec
+    format "0.000"
+  }
+  column {
     header "^GCT^"	/* Total Garbage Collection Time */
-    data (sun.gc.collector.0.time + sun.gc.collector.1.time)/sun.os.hrt.frequency
+    data (sun.gc.collector.0.time + sun.gc.collector.1.time + sun.gc.collector.2.time)/sun.os.hrt.frequency
     align right
     width 8
     scale sec
@@ -1003,8 +1099,24 @@
     format "0.000"
   }
   column {
+    header "^CGC^"	/* Concurrent Collections (STW phase) */
+    data sun.gc.collector.2.invocations
+    align right
+    width 5
+    scale raw
+    format "0"
+  }
+  column {
+    header "^CGCT^"	/* Concurrent Garbage Collection Time (STW phase) */
+    data sun.gc.collector.2.time/sun.os.hrt.frequency
+    align right
+    width 8
+    scale sec
+    format "0.000"
+  }
+  column {
     header "^GCT^"	/* Total Garbage Collection Time */
-    data (sun.gc.collector.0.time + sun.gc.collector.1.time)/sun.os.hrt.frequency
+    data (sun.gc.collector.0.time + sun.gc.collector.1.time + sun.gc.collector.2.time)/sun.os.hrt.frequency
     align right
     width 8
     scale sec
--- a/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,23 +25,25 @@
  * Results of running the JstatGcTool ("jstat -gccause <pid>")
  *
  * Output example:
- * S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC
- * 0.00   6.25  46.19   0.34  57.98  54.63  15305 1270.551     0    0.000 1270.551 Allocation Failure   No GC
+ * S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT    LGCC                 GCC
+ * 0.00   6.25  46.19   0.34  57.98  54.63  15305 1270.551     0    0.000     0    0.00  1270.551 Allocation Failure   No GC
 
  * Output description:
- * S0         Survivor space 0 utilization as a percentage of the space's current capacity.
- * S1         Survivor space 1 utilization as a percentage of the space's current capacity.
- * E           Eden space utilization as a percentage of the space's current capacity.
- * O           Old space utilization as a percentage of the space's current capacity.
- * M          Metaspace utilization as a percentage of the space's current capacity.
+ * S0      Survivor space 0 utilization as a percentage of the space's current capacity.
+ * S1      Survivor space 1 utilization as a percentage of the space's current capacity.
+ * E       Eden space utilization as a percentage of the space's current capacity.
+ * O       Old space utilization as a percentage of the space's current capacity.
+ * M       Metaspace utilization as a percentage of the space's current capacity.
  * CCS     Compressed Class Space
  * YGC     Number of young generation GC events.
  * YGCT    Young generation garbage collection time.
- * FGC      Number of full GC events.
+ * FGC     Number of full GC events.
  * FGCT    Full garbage collection time.
- * GCT      Total garbage collection time.
+ * CGC     Concurrent Collections (STW phase)
+ * CGCT    Concurrent Garbage Collection Time (STW phase)
+ * GCT     Total garbage collection time.
  * LGCC    Cause of last Garbage Collection.
- * GCC      Cause of current Garbage Collection.
+ * GCC     Cause of current Garbage Collection.
  */
 package utils;
 
@@ -72,6 +74,13 @@
         assertThat(GCT >= 0, "Incorrect time value for GCT");
         assertThat(GCT >= YGCT, "GCT < YGCT (total garbage collection time < young generation garbage collection time)");
 
+        int CGC = getIntValue("CGC");
+        float CGCT = getFloatValue("CGCT");
+        assertThat(CGCT >= 0, "Incorrect time value for CGCT");
+        if (CGC > 0) {
+            assertThat(CGCT > 0, "Number of concurrent GC events is " + CGC + ", but CGCT is 0");
+        }
+
         int FGC = getIntValue("FGC");
         float FGCT = getFloatValue("FGCT");
         assertThat(FGCT >= 0, "Incorrect time value for FGCT");
@@ -81,7 +90,7 @@
 
         assertThat(GCT >= FGCT, "GCT < YGCT (total garbage collection time < full generation garbage collection time)");
 
-        assertThat(checkFloatIsSum(GCT, YGCT, FGCT), "GCT != (YGCT + FGCT) " + "(GCT = " + GCT + ", YGCT = " + YGCT
-                + ", FGCT = " + FGCT + ", (YCGT + FGCT) = " + (YGCT + FGCT) + ")");
+        assertThat(checkFloatIsSum(GCT, YGCT, CGCT, FGCT), "GCT != (YGCT + CGCT + FGCT) " + "(GCT = " + GCT + ", YGCT = " + YGCT
+                + ", CGCT = " + CGCT + ", FGCT = " + FGCT + ", (YCGT + CGCT + FGCT) = " + (YGCT + CGCT + FGCT) + ")");
     }
 }
--- a/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcResults.java	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcResults.java	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,8 @@
  * Results of running the JstatGcTool ("jstat -gc <pid>")
  *
  * Output example:
- * (S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
- * 512.0  512.0   32.0   0.0   288768.0 168160.6  83968.0     288.1    4864.0 2820.3 512.0  279.7   18510 1559.208   0      0.000 1559.208
+ * S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+ * 512.0  512.0   32.0   0.0   288768.0 168160.6  83968.0     288.1    4864.0 2820.3 512.0  279.7   18510 1559.208   0      0.000    0     0.0  1559.208
  *
  * Output description:
  * S0C     Current survivor space 0 capacity (KB).
@@ -45,6 +45,8 @@
  * YGCT    Young generation garbage collection time.
  * FGC     Number of full GC events.
  * FGCT    Full garbage collection time.
+ * CGC     Concurrent Collections (STW phase)
+ * CGCT    Concurrent Garbage Collection Time (STW phase)
  * GCT     Total garbage collection time.
  *
  */
@@ -101,6 +103,13 @@
         assertThat(GCT >= 0, "Incorrect time value for GCT");
         assertThat(GCT >= YGCT, "GCT < YGCT (total garbage collection time < young generation garbage collection time)");
 
+        int CGC = getIntValue("CGC");
+        float CGCT = getFloatValue("CGCT");
+        assertThat(CGCT >= 0, "Incorrect time value for CGCT");
+        if (CGC > 0) {
+            assertThat(CGCT > 0, "Number of concurrent GC events is " + CGC + ", but CGCT is 0");
+        }
+
         int FGC = getIntValue("FGC");
         float FGCT = getFloatValue("FGCT");
         assertThat(FGCT >= 0, "Incorrect time value for FGCT");
@@ -110,7 +119,7 @@
 
         assertThat(GCT >= FGCT, "GCT < YGCT (total garbage collection time < full generation garbage collection time)");
 
-        assertThat(checkFloatIsSum(GCT, YGCT, FGCT), "GCT != (YGCT + FGCT) " + "(GCT = " + GCT + ", YGCT = " + YGCT
-                + ", FGCT = " + FGCT + ", (YCGT + FGCT) = " + (YGCT + FGCT) + ")");
+        assertThat(checkFloatIsSum(GCT, YGCT, CGCT, FGCT), "GCT != (YGCT + CGCT + FGCT) " + "(GCT = " + GCT + ", YGCT = " + YGCT
+                + ", CGCT = " + CGCT + ", FGCT = " + FGCT + ", (YCGT + CGCT + FGCT) = " + (YGCT + CGCT + FGCT) + ")");
     }
 }
--- a/test/jdk/sun/tools/jstat/gcCapacityOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcCapacityOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,19 +3,19 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-# NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
-#  4096.0 657408.0   8192.0  512.0  512.0   3072.0     6144.0  1312768.0     6144.0     6144.0    512.0 132096.0   5120.0    512.0 131072.0    512.0      1     0
+# NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC   CGC
+#  4096.0 657408.0   8192.0  512.0  512.0   3072.0     6144.0  1312768.0     6144.0     6144.0    512.0 132096.0   5120.0    512.0 131072.0    512.0      1     0    0
 
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^ NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC $/	{
+/^ NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC   CGC $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/gcCauseOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcCauseOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,15 +3,15 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                 
-#  0.00   0.00   0.00   9.97  90.94  87.70      2    0.013     0    0.000    0.013 Allocation Failure   No GC
+#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     CGC    CGCT     GCT    LGCC                 GCC
+#  0.00   0.00   0.00   9.97  90.94  87.70      2    0.013     0    0.000     0    0.000    0.013 Allocation Failure   No GC
 
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                 $/	{
+/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT    LGCC                 GCC                 $/	{
 	    headerlines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/gcMetaCapacityOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcMetaCapacityOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,18 +3,18 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT   
-#     512.0   132096.0     5120.0      512.0   131072.0      512.0     1     0    0.000    0.004
+#   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT    CGC    CGCT     GCT
+#     512.0   132096.0     5120.0      512.0   131072.0      512.0     1     0    0.000    0    0.000    0.004
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT   $/	{
+/^   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/gcNewCapacityOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcNewCapacityOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,19 +3,19 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC 
-#    2176.0     7232.0     2176.0    192.0     64.0    192.0     64.0     6848.0     2048.0     1     0
+#  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC   CGC
+#    2176.0     7232.0     2176.0    192.0     64.0    192.0     64.0     6848.0     2048.0     1     0    0
 
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC $/	{
+/^  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC   CGC $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/gcOldCapacityOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcOldCapacityOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,18 +3,18 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT   
-#     6016.0     58304.0      6016.0      6016.0     1     0    0.000    0.030
+#   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT    CGC    CGCT     GCT
+#     6016.0     58304.0      6016.0      6016.0     1     0    0.000    0   0.000    0.030
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT   $/	{
+/^   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/gcOldOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcOldOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,7 +3,7 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT   
+#   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT    CGC    CGCT     GCT
 #  5120.0   4152.0    512.0    397.9      6144.0       200.0      1     0    0.000    0.005
 
 
@@ -11,11 +11,11 @@
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT   $/	{
+/^   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/gcOutput1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/gcOutput1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,19 +3,19 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-# S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
-# 512.0  512.0   0.0   496.0   3072.0   615.5     6144.0     280.0    5120.0 4176.0 512.0  401.0       1    0.005   0      0.000    0.005
+# S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+# 512.0  512.0   0.0   496.0   3072.0   615.5     6144.0     280.0    5120.0 4176.0 512.0  401.0       1    0.005   0      0.000   0      0.000    0.005
 
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^ S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   $/	{
+/^ S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/lineCounts1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/lineCounts1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,22 +3,22 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
-#  0.00  93.76  28.80   1.82  77.74  68.02      1    0.005     0    0.000    0.005
-#  0.00  93.76  73.04   1.82  77.74  68.02      1    0.005     0    0.000    0.005
-#  0.00  93.76  73.04   1.82  77.74  68.02      1    0.005     0    0.000    0.005
-#  0.00  93.76  73.04   1.82  77.74  68.02      1    0.005     0    0.000    0.005
-#  0.00  93.76  75.00   1.82  77.74  68.02      1    0.005     0    0.000    0.005
+#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+#  0.00  93.76  28.80   1.82  77.74  68.02      1    0.005     0    0.000     0    0.000    0.005
+#  0.00  93.76  73.04   1.82  77.74  68.02      1    0.005     0    0.000     0    0.000    0.005
+#  0.00  93.76  73.04   1.82  77.74  68.02      1    0.005     0    0.000     0    0.000    0.005
+#  0.00  93.76  73.04   1.82  77.74  68.02      1    0.005     0    0.000     0    0.000    0.005
+#  0.00  93.76  75.00   1.82  77.74  68.02      1    0.005     0    0.000     0    0.000    0.005
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   $/	{
+/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/lineCounts2.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/lineCounts2.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,18 +3,18 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
-#  0.00  93.76  28.40   1.82  77.74  68.02      1    0.005     0    0.000    0.005
+#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+#  0.00  93.76  28.40   1.82  77.74  68.02      1    0.005     0    0.000     0    0.000    0.005
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   $/	{
+/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/lineCounts3.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/lineCounts3.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,27 +3,27 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
-#  0.00  93.76  26.48   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  71.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  73.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  73.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  73.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  75.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  75.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  77.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  77.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
-#  0.00  93.76  77.58   1.95  77.78  68.02      1    0.006     0    0.000    0.006
+#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+#  0.00  93.76  26.48   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  71.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  73.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  73.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  73.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  75.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  75.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  77.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  77.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
+#  0.00  93.76  77.58   1.95  77.78  68.02      1    0.006     0    0.000     0    0.000    0.006
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
         }
 
-/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   $/	{
+/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstat/lineCounts4.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/lineCounts4.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,30 +3,30 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
-#  0.00  96.88  66.55   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  71.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  75.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  75.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
-#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
-#  0.00  96.88  79.58   2.34  77.78  68.02      1    0.003     0    0.000    0.003
+#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+#  0.00  96.88  66.55   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  71.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  73.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  75.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  75.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  0.00  96.88  77.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
+#  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+#  0.00  96.88  79.58   2.34  77.78  68.02      1    0.003     0    0.000     0    0.000    0.003
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	    datalines2=0;
         }
 
-/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   $/	{
+/^  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    if (headerlines == 2) {
 	        datalines2++;
 	    }
--- a/test/jdk/sun/tools/jstat/timeStamp1.awk	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstat/timeStamp1.awk	Fri Mar 09 23:13:37 2018 +0900
@@ -3,18 +3,18 @@
 # that the numerical values conform to a specific pattern, rather than
 # specific values.
 #
-#Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
-#            0.3   0.00 100.00  68.74   1.95  77.73  68.02      1    0.004     0    0.000    0.004
+#Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT
+#            0.3   0.00 100.00  68.74   1.95  77.73  68.02      1    0.004     0    0.000     0    0.000    0.004
 
 BEGIN	{
 	    headerlines=0; datalines=0; totallines=0
 	}
 
-/^Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   $/	{
+/^Timestamp         S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT    CGC    CGCT     GCT   $/	{
 	    headerlines++;
 	}
 
-/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
+/^[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*([0-9]+\.[0-9]+)|-[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+[ ]*[0-9]+\.[0-9]+[ ]*[0-9]+\.[0-9]+$/	{
 	    datalines++;
 	}
 
--- a/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java	Mon Mar 12 12:02:20 2018 +0100
+++ b/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java	Fri Mar 09 23:13:37 2018 +0900
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,8 @@
         YGCT(GcStatisticsType.DOUBLE),
         FGC(GcStatisticsType.INTEGER),
         FGCT(GcStatisticsType.DOUBLE),
+        CGC(GcStatisticsType.INTEGER),
+        CGCT(GcStatisticsType.DOUBLE),
         GCT(GcStatisticsType.DOUBLE);
 
         private final GcStatisticsType type;