RFR: Bulk integration from jdk/jdk 2018-04-23
Roman Kennke
rkennke at redhat.com
Mon Apr 23 20:49:07 UTC 2018
Hi Aleksey,
thanks for reviewing!
> On 04/23/2018 06:48 PM, Roman Kennke wrote:
>> This merges latest upstream changes, based on:
>>
>> changeset: 50053:69d7398038c5
>> user: rehn
>> date: Wed Apr 18 09:25:51 2018 +0200
>> summary: 8195099: Concurrent safe-memory-reclamation mechanism
>>
>> It brings lots of goodies, the top 3 being:
>>
>> - thread local GC data (replacing our gcstate, satb queue and
>> oom_during_evac, possibly in the future the gclab)
>> - runtime object equals barriers
>> - interpreter/assembler GC code generator
>>
>> The complete list of changes:
>> http://cr.openjdk.java.net/~rkennke/merge-2018-04-23/changesets
>>
>> Diff of Shenandoah changes:
>> http://cr.openjdk.java.net/~rkennke/merge-2018-04-23/shenandoah-changes.patch
>
> Looks good. We better push this soon to see how it holds water. Ugh, I expect so many weird issues
> from this, and it moves Shenandoah code apart from backports. But, there is nothing we can do.
Yeah, too bad about backports, but in the long run it'll be good. The
improved separation between GC and rest of the world is awesomesauce.
> I have only one question: what is CompressedOops::is_null and friends? Is is a newfangled way to
> deal with compressed oops? Does it work on non-coops paths?
Yes and yes. It's basically moved the old oopDesc::is_null() and a bunch
of stuff to CompressedOops. It also has (trivial) impls for non-coops,
just as it's been before. If you know something is oop, then simply
doing == NULL or != NULL is ok now too (it was ok before, but I tended
to use oopDesc::is_null() anyway).
Roman
More information about the shenandoah-dev
mailing list