RFR: 8027960: Assertion assert(end >= start) failed during nightly testing on solaris

Thomas Schatzl thomas.schatzl at oracle.com
Mon Nov 11 20:46:09 UTC 2013


On Mon, 2013-11-11 at 12:06 -0800, Jon Masamitsu wrote:
> On 11/11/13 1:02 AM, Thomas Schatzl wrote:
> > Hi Jon,
> >
> > On Fri, 2013-11-08 at 10:52 -0800, Jon Masamitsu wrote:
> >> Stefan,
> >>
> >> Change looks good.
> >>
> >> There are _gen_alignments and _space_alignments in CollectorPolicy.
> >> Where those are initialized there is no calculation of a new_alignment
> >> based on page size.  For example,
> >>
> >> void MarkSweepPolicy::initialize_alignments() {
> >>     _space_alignment = _gen_alignment = (uintx)Generation::GenGrain;
> >>     _heap_alignment = compute_heap_alignment();
> >> }
> >>
> >> Should those places be calculating and using a new_alignment?
> >    I am not completely sure what the question is, and whether Jesper's
> > reply already replied or not, but as far as I can tell the question
> > seems to be why the MarkSweepPolicy (for serial gc) does not take page
> > size into account for space and generation alignment.
> Yes.  That's basically the question.  The change was made for
> ParallelGC.   Were similar changes needed elsewhere.

I do not know if similar changes are exactly "needed", but imo it would
be good for the other collectors too.

> > As far as I know, only Parallel GC ever did that as it is also the only
> > collector that is NUMA aware, so I assume this is the reason why that
> > collector does. All collectors align the heap alignment to large page
> > size though if large pages are used.
> I didn't realize that the assertion failure had to do with NUMA.
> Can you explain more?

Just that at that time when NUMA for parallel gc has been added,
probably this sizing code got revised, and this behavior added just for
parallel gc. And forgotten for others.

Also, trying to size by whole pages likely makes assigning memory to
nodes easier, i.e. less need to split large pages into smaller ones. But
that's just a try to make up an explanation from me (for me :).

I will file an RFE for this to increase space/generation alignment if
large pages are used (I could not find any existing ones) - is this okay
with you?


More information about the hotspot-gc-dev mailing list