RFR: 8261759: ZGC: ZWorker Threads Continue Marking After System.exit() called [v3]
Per Liden
pliden at openjdk.java.net
Mon Apr 19 13:14:58 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 incrementally with one additional commit since the last revision:
Forward in-place if GC aborted
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/3453/files
- new: https://git.openjdk.java.net/jdk/pull/3453/files/73603d6d..d0e6a56a
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3453&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3453&range=01-02
Stats: 51 lines in 5 files changed: 36 ins; 9 del; 6 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