There is a circular dependency between the alignment, the page size and the heap size in parallel scavenge. This can be seen in GenerationSizer::initialize_size_info() where we first calculate the page size based on the heap size already calculated in initialize_flags(). Then, the alignment is calculated based on the new page size, and if the alignment is changed initialize_flags() is called again to calculate a new heap size...
This should be cleaned up. The page size could probably be calculated earlier based on an estimate of the heap size somewhere around the time where we call initialize_alignments().
This should be cleaned up. The page size could probably be calculated earlier based on an estimate of the heap size somewhere around the time where we call initialize_alignments().