[jdk17u-dev] RFR: 8280705: Parallel: Full gc mark stack draining should prefer to make work available to other threads [v3]

Aleksey Shipilev shade at openjdk.org
Tue Aug 15 15:16:22 UTC 2023


On Tue, 15 Aug 2023 09:36:48 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> Clean backport to match what G1 is also doing. The change was in mainline for more than a year without related issues.
>> 
>> Additional testing:
>>  - [x] Linux x86_64 fastdebug `tier1` with `-XX:+UseParallelGC`
>>  - [x] Linux x86_64 fastdebug `tier2` with `-XX:+UseParallelGC`
>>  - [x] Linux x86_64 fastdebug `tier3` with `-XX:+UseParallelGC`
>
> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
> 
>  - Merge branch 'master' into JDK-8280705-parallel-fullgc-work
>  - Merge branch 'master' into JDK-8280705-parallel-fullgc-work
>  - Merge branch 'master' into JDK-8280705-parallel-fullgc-work
>  - Backport bdda43e066b8da0ebf9a8ef2f843eabb230f0800

Hm, this actually regresses Parallel Full GC performance on some workloads. For example, `dotty`:


% java -XX:+UseParallelGC -Xmx1g -Xms1g -Xlog:gc -jar ../renaissance-mit-0.14.2.jar dotty 2>&1 | grep "Pause Full"

# Baseline
...
[62.287s][info][gc] GC(76) Pause Full (System.gc()) 22M->22M(981M) 64.464ms
[63.693s][info][gc] GC(78) Pause Full (System.gc()) 22M->22M(981M) 62.254ms
[65.091s][info][gc] GC(80) Pause Full (System.gc()) 22M->22M(981M) 61.213ms
[66.492s][info][gc] GC(82) Pause Full (System.gc()) 22M->22M(981M) 62.152ms
[67.893s][info][gc] GC(84) Pause Full (System.gc()) 22M->22M(981M) 61.495ms
[69.292s][info][gc] GC(86) Pause Full (System.gc()) 22M->22M(981M) 62.536ms
[70.680s][info][gc] GC(88) Pause Full (System.gc()) 22M->22M(981M) 62.616ms
[72.078s][info][gc] GC(90) Pause Full (System.gc()) 22M->22M(981M) 62.685ms
[73.471s][info][gc] GC(92) Pause Full (System.gc()) 22M->22M(981M) 60.560ms

# 17u with this patch
[63.834s][info][gc] GC(78) Pause Full (System.gc()) 22M->22M(981M) 66.412ms
[65.235s][info][gc] GC(80) Pause Full (System.gc()) 22M->22M(981M) 70.616ms
[66.638s][info][gc] GC(82) Pause Full (System.gc()) 22M->22M(981M) 66.929ms
[68.043s][info][gc] GC(84) Pause Full (System.gc()) 22M->22M(981M) 66.627ms
[69.451s][info][gc] GC(86) Pause Full (System.gc()) 22M->22M(981M) 67.261ms
[70.858s][info][gc] GC(88) Pause Full (System.gc()) 22M->22M(981M) 71.890ms
[72.259s][info][gc] GC(90) Pause Full (System.gc()) 22M->22M(981M) 67.020ms
[73.656s][info][gc] GC(92) Pause Full (System.gc()) 22M->22M(981M) 67.471ms
[75.059s][info][gc] GC(94) Pause Full (System.gc()) 22M->22M(981M) 68.016ms

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

PR Comment: https://git.openjdk.org/jdk17u-dev/pull/1521#issuecomment-1679106712


More information about the jdk-updates-dev mailing list