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

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: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20181129/47a458ea/signature.asc>



More information about the hotspot-gc-dev mailing list