RFR/RFC: Make OOM-during-evacuation race-free

Roland Westrelin rwestrel at redhat.com
Wed Oct 25 11:56:38 UTC 2017


> We cannot trigger a safepoint (and do a full-gc) while we're in the 
> write-barrier because we're inside a no-leaf call and don't have any 
> debug info. (In fact, per contract, we should not even block until 
> workers settled). We cannot make the write-barrier regular leaf calls 
> because this would very seriously affect our ability to optimize 
> barriers in C2. We cannot even throw an OOME because we have no debug info.

Let's say we add a new kind of runtime calls where it's allowed to block
but not to deopt. Then current c2 optimizations are unaffected and the
problem is solved, right?

We would have to change the safepointing protocol so if a thread blocks
in a no deopt call, it would have to be allowed to continue execution
until a safepoint that allows deopt.

Problem with this, other than it's maybe not as simple as it seems, is
that it could be quite invasive and hard to sell upstream.

Roland.


More information about the shenandoah-dev mailing list