The G1 remark pause does not give much information about the various stages of processing, yet it sometimes takes a significant amount of time.
Currently, even with -XX:+PrintGCDetails the output is as follows:
536.310: [GC remark 536.323: [GC ref-proc, 0.0580120 secs], 0.2352880 secs]
As shown, in the whole GC remark pause, only reference processing is explicitly mentioned, however the remark pause has more stages, in particular the actual remark, the mentioned reference processing, string and symbol table unlink and some statistics phase.
Provide this information, eg. at least like in the following example:
[GC remark [GC graph-trace, 0.0095070 secs] [GC ref-proc, 0.0151560 secs] [GC string-unlink, 0.0211210 secs] [GC symbol-unlink, 0.0635730 secs] [GC aggregate-data, 0.0102910 secs], 0.1199190 secs]
It may be nice to allow breaking down the parallel phases in per-thread times.
Useful for diagnosing remark pause time.