RFR(S): Handle Java heap initialization and expansion failure

Zhengyu Gu zgu at redhat.com
Thu Aug 10 22:16:01 UTC 2017


>
> *) The option seems Shenandoah-specific, so should be predicated by "Shenandoah"?
>
>  321   develop(int, FailHeapExpansionAfter, -1,                                  \
Fixed

>
> *) Not SIZE_FORMAT_HEX, but SIZE_FORMAT here, no?
>
> 1697     log_trace(gc, region)("Expanded storage by "SIZE_FORMAT_HEX" bytes, for "SIZE_FORMAT" new
> regions", expand_size, new_regions);
> 1699     log_warning(gc, region)("Failed to expand storage by "SIZE_FORMAT_HEX" bytes, for
> "SIZE_FORMAT" new regions", expand_size, new_regions);
>
Fixed. It was copied from old code.

> *) I think the commit path in new code for region commit/uncommit should be handled too. Can be done
> separately.
>
Yes, I want it to be a separate fix.

> *) AllocALotObjects should store the objects on heap -- e.g. in the volatile field, to avoid
> compiler optimizations trimming the loop down. For example, OSR *may* compile this without side-effects?
>
I want to grow live objects to force heap expansion.


Updated webrev: 
http://cr.openjdk.java.net/~zgu/shenandoah/handle_heap_expansion_failure/webrev.01/

Thanks,

-Zhengyu

> Thanks,
> -Aleksey
>


More information about the shenandoah-dev mailing list