RFR (S): 8013791: G1: G1CollectorPolicy::initialize_flags() may set min_alignment > max_alignment

Thomas Schatzl thomas.schatzl at oracle.com
Thu May 2 19:04:40 UTC 2013


On Thu, 2013-05-02 at 20:16 +0200, Bengt Rutisson wrote:
> Hi everyone,
> Could I have a couple of reviews for this small patch?
> http://cr.openjdk.java.net/~brutisso/8013791/webrev.00/
> For G1 it is important that the heap size is aligned by the region size. 
> The ergonomics will pick CollectorPolicy::max_alignment() for aligning 
> the heap, but this alignment is based on the card table rather than the 
> region size.
> This fix makes sure that we pick the larger alignment for the 
> max_alignment value and it adds the same assert for the min and max 
> alignments that is available in GenCollectorPolicy::initialize_flags().

Is it possible to move the min/max alignment constraint checking into
CollectorPolicy::initialize_flags() instead of duplicating the code?
It seems that this is a general requirement i.e. all other collectors
use a descendant of GenCollectorPolicy.

I also think a better reproducer sets MaxRAM and MaxRAMFraction to odd
values as this will hit the "right" code paths. E.g.


More information about the hotspot-gc-dev mailing list