RFR: JDK-8263579: ZGC concurrent mark hangs with debug loglevel

王超 github.com+25214855+casparcwang at openjdk.java.net
Wed Mar 17 03:07:08 UTC 2021


On Tue, 16 Mar 2021 10:57:36 GMT, Per Liden <pliden at openjdk.org> wrote:

> Thanks for reporting and proposing a fix. I would suggest that we simply remove the `ZSubPhaseConcurrentMarkIdle` stat timer completely, since that timer isn't that useful anyway.

Thanks for your review @pliden . The patch is changed according to your suggestion, and removing `ZSubPhaseConcurrentMarkIdle`  solves the problem in the test environment.

The destruction of `ZSubPhaseConcurrentMarkIdle` and `ZSubPhaseConcurrentMarkTryTerminate` produce lots of lock contention, which result in the hang. Only removing `ZSubPhaseConcurrentMarkIdle` can reduce the contention of gc log lock, but there still exists contention of gc log lock of `ZSubPhaseConcurrentMarkTryTerminate` after `_terminate.try_exit_stage0()`, which may result in jvm hang or long concurrent mark time in some un-explored scenario.

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

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



More information about the hotspot-gc-dev mailing list