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

G1: With virtualized remembered sets, maximum number of cards configured is wrong

XMLWordPrintable

    • gc
    • b24

       https://github.com/openjdk/jdk/blob/master/src/hotspot/share/gc/g1/g1CardSet.cpp#L58

      The max #cards in a heap region is passed to max_cards_in_card_set, but the heap range covered by a cardset container is not necessary a region. If the #cards_in_region is too large, multiple cardset containers are required to fully cover that heap range.


      * This prevents upgrading a Howl container to Full with virtualized remembered sets (Heap regions >= 64M) as the (default) threshold for coarsening from Howl to Full is max_cards_in_cardset * 0.9, which is always higher than the value tested against (65k, max card set container element number).
      * This also unnecessarily increases the bits used for inline ptrs


      g1CardSet.cpp:58

                               (uint)HeapRegion::CardsPerRegion, /* max_cards_in_cardset */

      (found by ayang)

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

              Created:
              Updated:
              Resolved: