--- old/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2018-02-06 13:59:03.305613205 +0900 +++ new/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.cpp 2018-02-06 13:59:03.148610531 +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 @@ -629,6 +629,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 } @@ -5560,17 +5561,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; } --- old/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp 2018-02-06 13:59:03.688619729 +0900 +++ new/src/hotspot/share/gc/cms/concurrentMarkSweepGeneration.hpp 2018-02-06 13:59:03.535617123 +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(); } --- old/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp 2018-02-06 13:59:04.026625487 +0900 +++ new/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp 2018-02-06 13:59:03.874622898 +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 @@ -1012,8 +1012,6 @@ return; } - SvcGCMarker sgcm(SvcGCMarker::OTHER); - if (VerifyDuringGC) { g1h->verifier()->verify(G1HeapVerifier::G1VerifyRemark, VerifyOption_G1UsePrevMarking, "During GC (before)"); } --- old/src/hotspot/share/gc/g1/g1MonitoringSupport.cpp 2018-02-06 13:59:04.375631432 +0900 +++ new/src/hotspot/share/gc/g1/g1MonitoringSupport.cpp 2018-02-06 13:59:04.220628791 +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 --- old/src/hotspot/share/gc/g1/g1MonitoringSupport.hpp 2018-02-06 13:59:04.707637087 +0900 +++ new/src/hotspot/share/gc/g1/g1MonitoringSupport.hpp 2018-02-06 13:59:04.552634447 +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; } --- old/src/hotspot/share/gc/g1/vm_operations_g1.cpp 2018-02-06 13:59:05.039642742 +0900 +++ new/src/hotspot/share/gc/g1/vm_operations_g1.cpp 2018-02-06 13:59:04.886640136 +0900 @@ -207,6 +207,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(); } --- old/src/hotspot/share/gc/shared/vmGCOperations.hpp 2018-02-06 13:59:05.364648278 +0900 +++ new/src/hotspot/share/gc/shared/vmGCOperations.hpp 2018-02-06 13:59:05.212645689 +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); --- old/src/jdk.jcmd/share/classes/sun/tools/jstat/resources/jstat_options 2018-02-06 13:59:05.692653866 +0900 +++ new/src/jdk.jcmd/share/classes/sun/tools/jstat/resources/jstat_options 2018-02-06 13:59:05.538651242 +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 --- old/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java 2018-02-06 13:59:06.029659606 +0900 +++ new/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java 2018-02-06 13:59:05.876657000 +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 -gccause ") * * 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. @@ -39,6 +39,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. * LGCC Cause of last Garbage Collection. * GCC Cause of current Garbage Collection. @@ -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) + ")"); } } --- old/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcResults.java 2018-02-06 13:59:06.356665176 +0900 +++ new/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcResults.java 2018-02-06 13:59:06.203662570 +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 ") * * 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) + ")"); } } --- old/test/jdk/sun/tools/jstat/gcCapacityOutput1.awk 2018-02-06 13:59:06.684670763 +0900 +++ new/test/jdk/sun/tools/jstat/gcCapacityOutput1.awk 2018-02-06 13:59:06.533668191 +0900 @@ -3,19 +3,21 @@ # 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++; } --- old/test/jdk/sun/tools/jstat/gcCauseOutput1.awk 2018-02-06 13:59:07.010676317 +0900 +++ new/test/jdk/sun/tools/jstat/gcCauseOutput1.awk 2018-02-06 13:59:06.859673744 +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++; } --- old/test/jdk/sun/tools/jstat/gcMetaCapacityOutput1.awk 2018-02-06 13:59:07.340681938 +0900 +++ new/test/jdk/sun/tools/jstat/gcMetaCapacityOutput1.awk 2018-02-06 13:59:07.187679331 +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++; } --- old/test/jdk/sun/tools/jstat/gcNewCapacityOutput1.awk 2018-02-06 13:59:07.667687508 +0900 +++ new/test/jdk/sun/tools/jstat/gcNewCapacityOutput1.awk 2018-02-06 13:59:07.514684902 +0900 @@ -3,19 +3,20 @@ # 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++; } --- old/test/jdk/sun/tools/jstat/gcOldCapacityOutput1.awk 2018-02-06 13:59:07.991693027 +0900 +++ new/test/jdk/sun/tools/jstat/gcOldCapacityOutput1.awk 2018-02-06 13:59:07.839690438 +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++; } --- old/test/jdk/sun/tools/jstat/gcOldOutput1.awk 2018-02-06 13:59:08.319698614 +0900 +++ new/test/jdk/sun/tools/jstat/gcOldOutput1.awk 2018-02-06 13:59:08.165695991 +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++; } --- old/test/jdk/sun/tools/jstat/gcOutput1.awk 2018-02-06 13:59:08.645704167 +0900 +++ new/test/jdk/sun/tools/jstat/gcOutput1.awk 2018-02-06 13:59:08.492701561 +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++; } --- old/test/jdk/sun/tools/jstat/lineCounts1.awk 2018-02-06 13:59:08.973709754 +0900 +++ new/test/jdk/sun/tools/jstat/lineCounts1.awk 2018-02-06 13:59:08.820707148 +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++; } --- old/test/jdk/sun/tools/jstat/lineCounts2.awk 2018-02-06 13:59:09.301715342 +0900 +++ new/test/jdk/sun/tools/jstat/lineCounts2.awk 2018-02-06 13:59:09.148712736 +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++; } --- old/test/jdk/sun/tools/jstat/lineCounts3.awk 2018-02-06 13:59:09.625720861 +0900 +++ new/test/jdk/sun/tools/jstat/lineCounts3.awk 2018-02-06 13:59:09.475718305 +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++; } --- old/test/jdk/sun/tools/jstat/lineCounts4.awk 2018-02-06 13:59:09.955726482 +0900 +++ new/test/jdk/sun/tools/jstat/lineCounts4.awk 2018-02-06 13:59:09.800723841 +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++; } --- old/test/jdk/sun/tools/jstat/timeStamp1.awk 2018-02-06 13:59:10.282732052 +0900 +++ new/test/jdk/sun/tools/jstat/timeStamp1.awk 2018-02-06 13:59:10.129729446 +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++; } --- old/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java 2018-02-06 13:59:10.609737622 +0900 +++ new/test/jdk/sun/tools/jstatd/JstatGCUtilParser.java 2018-02-06 13:59:10.458735050 +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;