RFR: JDK-8263495: Gather liveness info in the mark phase of G1 full gc [v6]

Stefan Johansson sjohanss at openjdk.java.net
Thu Mar 18 09:26:49 UTC 2021


On Thu, 18 Mar 2021 08:55:23 GMT, Hamlin Li <mli at openjdk.org> wrote:

>>> 
>>> On my local env, it seems make no difference wIth or w/o your patch, for both marking phase and whole full gc pause. But I will apply your patch, Thanks a lot for the benchmarking.
>> 
>> What inlining gets done will depend a lot on the build env, so it might be that your build don't experience the same issue. Because you mean that you can't reproduce the regression at all right? Or is the regression present even after my patch?
>
> It's all the same, following data is in the order of master/with/w/o, (I don't "make clean" before make images)
> 
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.518s][info ][gc,phases] GC(0) Phase 1: Mark live objects 68.763ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.499s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.115ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.509s][info ][gc,phases] GC(0) Phase 1: Mark live objects 75.952ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.519s][info ][gc,phases] GC(0) Phase 1: Mark live objects 68.478ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.529s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.646ms
> 
> 
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.499s][info ][gc,phases] GC(0) Phase 1: Mark live objects 68.603ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.519s][info ][gc,phases] GC(0) Phase 1: Mark live objects 72.012ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.515s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.525ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.512s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.656ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.512s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.365ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.517s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.441ms
> 
> 
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.501s][info ][gc,phases] GC(0) Phase 1: Mark live objects 67.338ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.511s][info ][gc,phases] GC(0) Phase 1: Mark live objects 75.821ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.508s][info ][gc,phases] GC(0) Phase 1: Mark live objects 68.903ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.499s][info ][gc,phases] GC(0) Phase 1: Mark live objects 68.870ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.495s][info ][gc,phases] GC(0) Phase 1: Mark live objects 67.374ms
> $ java -Xlog:gc+phases=trace SystemGCLarge | grep "Phase 1: Mark live objects"
> [0.501s][info ][gc,phases] GC(0) Phase 1: Mark live objects 69.018ms

Thanks for verifying.

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

PR: https://git.openjdk.java.net/jdk/pull/2966



More information about the hotspot-gc-dev mailing list