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

G1: verify that the marking bitmaps have no marks for objects over TAMS

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: hs23
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • Resolved In Build:
      b13
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        In G1, we have two copies of the marking information: prev (the last marking information we obtained which is consistent) and next (the marking information we are obtaining / will obtain and it might be incomplete / inconsistent).

        Each marking information consists of the TAMS (top-at-mark-start) field per heap region + a marking bitmap that spans the heap. An object is considered live if it's either in the range [bottom,tams) and is marked on the bitmap (such objects are considered "explicitly live") or if it's in the range [tams,end) (such objects are considered "implicitly live").

        We assume that the bitmap range that corresponds to [tams,end) has no marks. It doesn't hurt to have them, but it'd be much simpler if there were no marks there to avoid spurious marks accidentally appearing on the bitmap in the future, which might cause crashes (e.g., during marking, we iterate over the bitmap to find live objects; a spurious mark might cause a marking thread to think that an address in the middle of an object contains an object header).

        To ensure that the above assumption holds, we should add code enabled by a develop flag (say: G1VerifyBitmaps) that verifies the above assumption.

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                brutisso Bengt Rutisson (Inactive)
                Reporter:
                tonyp Tony Printezis
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: