`CPUTimeCounters` unconditionally creates 
`CPUTimeGroups::CPUTimeType::gc_total`. Since only Parallel and G1 are 
supported by this framework/class, this leads to publishing a counter that 
always resolves to 0. This may be contradictory for an end-user especially so 
as we now support logging GC CPU time for any GC inside Hotspot. For an example 
using `-XX:+UseZGC -Xlog:cpu` we get


[7.907s][info][cpu] === CPU time Statistics 
=============================================================
[7.907s][info][cpu]                                                             
                CPUs
[7.907s][info][cpu]                                                             
   s       %  utilized
[7.907s][info][cpu]    Process
[7.907s][info][cpu]      Total                                              
186.9562  100.00      23.6
[7.907s][info][cpu]      Garbage Collection                                   
0.6700    0.36       0.1
[7.907s][info][cpu]        GC Threads                                         
0.6692    0.36       0.1
[7.907s][info][cpu]        VM Thread                                          
0.0008    0.00       0.0
[7.907s][info][cpu] 
=====================================================================================


But `jcmd $(pgrep -n java) PerfCounter.print | grep -E 
"sun.threads.total_gc_cpu_time"` prints: `sun.threads.total_gc_cpu_time=0`.

-------------

Commit messages:
 - Only create sun.threads.total_gc_cpu_time if we run a supported GC

Changes: https://git.openjdk.org/jdk/pull/28803/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28803&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8373625
  Stats: 4 lines in 1 file changed: 3 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/28803.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28803/head:pull/28803

PR: https://git.openjdk.org/jdk/pull/28803

Reply via email to