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

Hot Card Cache Scan time intermixed with costs per card during update RS for GC base time prediction

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • 9
    • 9
    • hotspot
    • gc

      The hot card cache scan time is intermixed with the flushing of the refinement buffer, i.e. Update RS time. If the hot card cache is large, this makes the prediction of the costs per card very wrong.

      Since costs per card is used for determining update RS time, i.e. the base time for the evacuation, this makes this prediction very wrong.

      I.e. we do:

      base time = predicted update RS time + ....

      predicted update RS time = cost-per-pending-cards * amount-of-pending-cards

      cost-per-pending-cards = integrate (update rs time / number of processed cards)

      The problem is that update RS time is not just the time it takes to process the number of cards in the current refinement buffers, but includes (constant) HCC scan time. If the latter is large, the cost-per-pending-cards is actually very much overestimated.

      I.e. update RS time != number of processed cards * time per card , but number of processed cards * time per card + (constant) HCC scan time

      The problem is, if the base time is mispredicted (too large), the predictions are way off.

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

              Created:
              Updated:
              Resolved: