Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8339960

GenShen: Fix inconsistencies in generational Shenandoah behavior

XMLWordPrintable

    • gc
    • b16

      Several issues were detected during rr playback of a recent assertion failure:

      1. The balancing of generations that happens at the end of free set rebuild is redundant with the actions taken by ShenandoahGenerationalHeap::balance_generations(). This sometimes results in performing these actions twice, resulting in an unexpected imbalance of generation sizes and a generation size assertion error.

      2. The convention within ShennadoahFreeSet's ShenandoahRegionPartition is to use rightmost equal to -1 and leftmost equal to max to indicate an empty partition. At the end of ShenandoahFreeSet::find_regions_with_alloc_capacity(), we were accidentally violating this convention by using righmost equal to 0 for empty.

      3. At the end of ShenandoahFreeSet::reserve_regions(), we log failure to reserve intended amounts. But the test for when to log this failure is wrong. We were testing for capacity rather than availability within the relevant partitions

            kdnilsen Kelvin Nilsen
            kdnilsen Kelvin Nilsen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: