--- old/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java 2018-03-07 21:12:24.062470528 +0900 +++ new/test/hotspot/jtreg/serviceability/tmtools/jstat/utils/JstatGcCauseResults.java 2018-03-07 21:12:23.116469176 +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) + ")"); } }