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

mark_card_deferred does not need to check g1_young_gen

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc
    • Resolved In Build:
      b99
    • Verification:
      Not verified

      Description

      mark_card_deferred is only called from two places:
      - UpdateRSetDeferred::do_oop_nv
      - G1ParScanThreadState::update_rs

      In the case of UpdateRSetDeferred::do_oop_nv, the check is always false because we clear the card table in cleanup_after_oops_into_collection_set_do prior to calling remove_self_forwarding_pointers.

      In the case of G1ParScanThreadState::update_rs, then we can update the check whether to mark a card or not to check !from->is_young instead of !from->is_survivor.

      Therefore, the if statement:
      if (val == g1_young_gen) {
         return false;
      }
      can be removed from G1SATBCardTableModRefBS::mark_card_deferred.

        Attachments

          Activity

            People

            • Assignee:
              ehelin Erik Helin
              Reporter:
              ehelin Erik Helin
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: