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

Improve HeapRegion::note_self_forwarding_removal_start

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Duplicate
    • Icon: P4 P4
    • tbd
    • 20
    • hotspot
    • gc

      HeapRegion::note_self_forwarding_removal_start, I would expect tams == bottom already with the single bitmap changes JDK-8210708

      I.e.:

        if (during_concurrent_start) {
          ...
        } else if (during_conc_mark) {
          // During concurrent mark, all objects in the CSet (including
          // the ones we find to be self-forwarded) are implicitly live.
          // So all objects need to be above TAMS.
          _top_at_mark_start = bottom();
        }

      should be

        if (during_concurrent_start) {
          ...
        } else {
          assert(_top_at_mark_start == bottom(), "inv);
        }

      The reason is that during evacuation failure
        * the young regions must always have TAMS==bottom

            tschatzl Thomas Schatzl
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: