Forwarding pointer elimination questions

Simone Bordet simone.bordet at gmail.com
Wed May 8 09:42:18 UTC 2019


Hi,

[new subject to avoid hijacking your RFR one]

On Wed, May 8, 2019 at 11:14 AM Aleksey Shipilev <shade at redhat.com> wrote:
> https://mail.openjdk.java.net/pipermail/shenandoah-dev/2019-April/009203.html
>
> LRB = LoadReferenceBarrier. LRB intercepts heap accesses at load-reference time, evacuates the
> object then.

This is quite similar to the ZGC and C4 barrier, right?

Is the LRB used only during evacuation, or also in the other phases
(marking, update_reference)?
Are you storing metadata on the side when the mutator triggers the
LRB, so that the CAS is now performed on the side data structure
rather than the forwarding pointer?

What's the LRB looking like in ASM?

Feels like you just moved from a Brooks pointer algorithm to a C4-like
algorithm (as described in the C4 paper - perhaps not exactly the same
as C4 or ZGC implementation wise).
If so, I have to update my slides :)

Thanks!
-- 
Simone Bordet
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


More information about the shenandoah-dev mailing list