RFR: 8261759: ZGC: ZWorker Threads Continue Marking After System.exit() called [v5]

Per Liden pliden at openjdk.java.net
Mon Apr 26 12:13:53 UTC 2021


> During JVM termination, ZCollectedHeap::stop() currently only returns once any ongoing GC cycle has completed. However, waiting for a GC cycle to complete can take awhile, so the JVM might not terminate as promptly as one might expect.
> 
> This patch adds abortion checks to workers doing marking and relocation to allow ZWorker threads to terminate promptly. In addition, before and after concurrent phases, the ZDriver thread checks if `should_terminate()` is true and prematurely terminates the GC cycle if that's the case.
> 
> Testing:
>  * Tier1-7 on Linux.
>  * SPECjbb2015, comparing score and marking times against baseline (5 iterations each), no difference observed.
>  * Ad-hoc programs calling System.exit() during marking/relocation.
>  * Manual Ctrl-C testing.

Per Liden has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:

 - Merge master
 - Add comment to macro
 - Forward in-place if GC aborted
 - Add missing include of precompiled.hpp
 - 8261759: ZGC: ZWorker Threads Continue Marking After System.exit() called

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

Changes: https://git.openjdk.java.net/jdk/pull/3453/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3453&range=04
  Stats: 193 lines in 10 files changed: 176 ins; 2 del; 15 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3453.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3453/head:pull/3453

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



More information about the hotspot-gc-dev mailing list