Request for CSR review: 8214349: Implementation: JEP 189: Shenandoah: A Low-Pause Garbage Collector

Roman Kennke rkennke at redhat.com
Thu Nov 29 11:06:07 UTC 2018


I need at least one GC expert review the CSR regarding command line
options for Shenandoah GC.

Also, for some reason, I cannot seem to comment on the CSR, so here's my
comments, it might be relevant to Reviewers.

==========================================================================
> Was a shorter option prefer than "Shenandoah" considered?

Yes. We (shenandoah devs) do use shorthands like ShHeapRegionSize or
even ShHRSize when communicating internally, but we know what it means.
It seems rather obscure though. Shenandoah prefix seems clearer.

> For naming something like "ShenandoahSATBBarrier" please consider
> using "ShenandoahSatbBarrier" instead. The JDK API is not consistent
> on this point, but camel-casing acronyms in API declarations is now
> preferred.

Hmm, ok. Will look into changing it.

> Do ShenandoahOptimizeInstanceFinals and related options enable
> optimizations which violate the spec?

At the very least, it taps undefined behavior: when modifying a final
field via reflection or JNI or other means, the optimization might lead
to see stale values.
There is one case where we think it would violate the JMM though: if
initializer initializes final field, and the object somehow escapes it,
and the field is accessed before initializer is finished, it might see a
stale (uninitialized) value, which it must not do.
How should we deal with it? Document the potential danger? Remove the
flags altogether?

> Are there general memory management options which Shenandoah pays
> attention to or ignores?

We use ParallelGCThreads, ConcGCThreads, ClassUnloading,
ClassUnloadingWithConcurrentMark and probably some more. Do you want me
to dig them up and document somewhere? (Where?)

> Before the request is finalized for the second phase of CSR review,
please have at least one GC engineer review the CSR.

Ok, I will ping hotspot-gc-dev.

Thanks!
Roman

==========================================================================

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20181129/47a458ea/signature-0001.asc>


More information about the hotspot-gc-dev mailing list