RFR (S) 8220350: Refactor ShenandoahHeap::initialize

Zhengyu Gu zgu at redhat.com
Fri Mar 8 18:45:12 UTC 2019

On 3/8/19 12:14 PM, Aleksey Shipilev wrote:
> RFE:
>    https://bugs.openjdk.java.net/browse/JDK-8220350
> Fix:
>    http://cr.openjdk.java.net/~shade/8220350/webrev.01/

With large pages, there is a possibility that a single page can host 
multiple regions. Our region based commit/uncommit might not work in 
this scenario. Have you tested it?

SH::initialize() still a 200 lines function, might be good to break it 
up, e.g. a method for each section? Otherwise, looks good.



> This prepares Shenandoah code for accepting bugfixes in this method. Some asserts are added to
> verify important fields are indeed initialized. Pacer cache moved out of ShHeapRegion to resolve
> initialization circularity -- it does not matter anyway, because increase_live_data_gc_words is
> called rarely itself, being protected by the cache during mark.
> Testing: hotspot_gc_shenandoah
> Thanks,
> -Aleksey

More information about the hotspot-gc-dev mailing list