Call for reviews: JEP 189: Shenandoah: A Low-Pause Garbage Collector

Per Liden per.liden at
Wed Nov 28 10:12:38 UTC 2018

Hi Roman,

Under "Non-Goals" the JEP says:

"The GC pause time is bounded by the time required to scan all of the 
thread stacks[...]"

This is not quite true, is it? I'd say the theoretical worst cases pause 
in Shenandoah is still bound by the live-set and heap size.

I can think of a few scenarios:

1) Reference processing is still done in a pause, but the theoretical 
worst case scenario for reference processing is bound by the live-set 
size. For example, marking of FinalReference objects during reference 
processing can in the worst case require marking the whole live-set (and 
in non-worst cases a substantial part of the live-set).

2) Weak root cleaning (e.g. StringTable/JNIGlobalRefs) is still done in 
a pause, but this has a theoretical worst case scenario of being bound 
by the heap size. For example, every object on the heap is a String 
which has been interned, so the time to scan/clean the StringTable will 
be bound by the heap size.


On 11/27/18 11:52 AM, Roman Kennke wrote:
> Hi there,
> I just noticed that we have only one 'Reviewed-by:' entry in the
> Shenandoah JEP. I know that several people have reviewed it in the past,
> as I've incorporated several suggestions into the JEP. I believe the JEP
> cannot move forward to 'proposed to target' without at least one more
> added reviewer.
> If you have reviewed the JEP in the past, and/or feel like reviewing it
> now, please don't forget to add your 'Reviewed-by:' entry. I believe any
> Reviewer familiar with the relevant field of expertise (GC and/or
> Hotspot in this case) can review it and add his name to it.
> Thanks!
> Roman

More information about the hotspot-dev mailing list