RFR: 8251451: Shenandoah: Remark ObjectSynchronizer roots with I-U

Roman Kennke rkennke at redhat.com
Wed Aug 12 10:36:23 UTC 2020


On Wed, 2020-08-12 at 09:34 +0200, Aleksey Shipilev wrote:
> On 8/11/20 8:57 PM, rkennke at redhat.com wrote:
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8251451
> > Webrev: http://cr.openjdk.java.net/~rkennke/JDK-8251451/webrev.00/
> 
> Looks good in principle.
> 
> But I see that ObjectSynchronizer::oops_do is in
> ShenandoahSerialRoots. The patch does it for every
> worker. Is OS::oops_do safe to call from multiple threads? Does it
> _make sense_ to call it from
> multiple threads, knowing the list is small?

Awww. Somehow I thought this was serial code. Sorry. No,
ObjectSynchronizer is not meant to be called multi-threaded. I added a
claim-flag so that only one thread gets to call
ObjectSynchronizer::oops_do().

http://cr.openjdk.java.net/~rkennke/JDK-8251451/webrev.01/

Good now?

Same testing still looks good.

Roman



More information about the shenandoah-dev mailing list