Integrated: 8314551: More generic way to handshake GC threads with monitor deflation

Roman Kennke rkennke at openjdk.org
Fri Sep 15 09:51:55 UTC 2023


On Thu, 17 Aug 2023 21:58:42 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

> We currently handshake GC threads with monitor deflation by calling SuspendibleThreadSet::synchronize() and SuspendibleThreadSet::desynchronize(). This is somewhat problematic though, because GCs may use other mechanisms to sync their GC threads. In particular, ZGC uses ZRelocateQueue to do that.
> 
> Luckily, CollectedHeap comes with interfaces for exactly this purpose: CollectedHeap::safepoint_synchronize_begin() and CollectedHeap::safepoint_synchronize_end(). Those methods are implemented by ZGC to do the correct synchronization with ZRelocateQueue. All GCs which need that sort of synchronization are overriding these methods and delegate to STS methods, so we can replace the STS calls with the CollectedHeap calls.
> 
> Testing:
>  - [x] hotspot_gc
>  - [x] tier1

This pull request has now been integrated.

Changeset: 31c4e03d
Author:    Roman Kennke <rkennke at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/31c4e03d5d4682a10825bd7cf2d37971e686b31e
Stats:     3 lines in 1 file changed: 0 ins; 0 del; 3 mod

8314551: More generic way to handshake GC threads with monitor deflation

Reviewed-by: jsjolen, eosterlund

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

PR: https://git.openjdk.org/jdk/pull/15336


More information about the hotspot-runtime-dev mailing list