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

Stefan Johansson sjohanss at openjdk.java.net
Mon Apr 26 11:40:29 UTC 2021


On Mon, 26 Apr 2021 11:00:08 GMT, Per Liden <pliden at openjdk.org> wrote:

>> 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:
> 
>   Add comment to macro

Looks good, thanks for adding the comment for the macro.

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

Marked as reviewed by sjohanss (Reviewer).

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



More information about the hotspot-gc-dev mailing list