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

G1: Improve group selection based on expected time to evacuate

XMLWordPrintable

    • gc

      Currently old gen regions groups are (apart from the collection set of the next GC after marking/rebuilding) set to G1OldCSetGroupSize (or so) regions.

      This can be problematic for (typically) the last mixed gc in a reclamation phase, which may or may not exceed pause time a lot.

      E.g. this gc+ergo+cset=trace output:

      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 150234, merge_scan_time 7.52ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.73ms, other_time 0.01ms, bytes_to_cop 11817832
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 16408, merge_scan_time 0.82ms, code_root_scan_time_ms 0.00ms, evac_time_ms 3.27ms, other_time 0.01ms, bytes_to_cop 22329712
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 15844, merge_scan_time 0.79ms, code_root_scan_time_ms 0.00ms, evac_time_ms 3.31ms, other_time 0.01ms, bytes_to_cop 22596696
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 14298, merge_scan_time 0.72ms, code_root_scan_time_ms 0.00ms, evac_time_ms 3.55ms, other_time 0.01ms, bytes_to_cop 24186784
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 16028, merge_scan_time 0.80ms, code_root_scan_time_ms 0.00ms, evac_time_ms 3.82ms, other_time 0.01ms, bytes_to_cop 26052632
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 300401, merge_scan_time 15.04ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.15ms, other_time 0.01ms, bytes_to_cop 7873944
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 299308, merge_scan_time 14.98ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.06ms, other_time 0.01ms, bytes_to_cop 7254192
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 16839, merge_scan_time 0.84ms, code_root_scan_time_ms 0.00ms, evac_time_ms 4.18ms, other_time 0.01ms, bytes_to_cop 28501536
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 18683, merge_scan_time 0.94ms, code_root_scan_time_ms 0.00ms, evac_time_ms 4.14ms, other_time 0.01ms, bytes_to_cop 28272600
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 18914, merge_scan_time 0.95ms, code_root_scan_time_ms 0.00ms, evac_time_ms 4.20ms, other_time 0.01ms, bytes_to_cop 28647496
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 18920, merge_scan_time 0.95ms, code_root_scan_time_ms 0.00ms, evac_time_ms 4.19ms, other_time 0.01ms, bytes_to_cop 28571816
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 4 regions, card_rs_length 15062, merge_scan_time 0.75ms, code_root_scan_time_ms 0.00ms, evac_time_ms 3.37ms, other_time 0.01ms, bytes_to_cop 22960672
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 304715, merge_scan_time 15.25ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.95ms, other_time 0.01ms, bytes_to_cop 13309120
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 430199, merge_scan_time 21.54ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.20ms, other_time 0.01ms, bytes_to_cop 8175520
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 436649, merge_scan_time 21.86ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.09ms, other_time 0.01ms, bytes_to_cop 7427424
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 435752, merge_scan_time 21.81ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.61ms, other_time 0.01ms, bytes_to_cop 10960520
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 446976, merge_scan_time 22.38ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.53ms, other_time 0.01ms, bytes_to_cop 10425784
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 430687, merge_scan_time 21.56ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.99ms, other_time 0.01ms, bytes_to_cop 13559168
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 580994, merge_scan_time 29.09ms, code_root_scan_time_ms 0.00ms, evac_time_ms 2.32ms, other_time 0.01ms, bytes_to_cop 15795744
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 1019984, merge_scan_time 51.06ms, code_root_scan_time_ms 0.00ms, evac_time_ms 1.14ms, other_time 0.01ms, bytes_to_cop 7805056
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 1296215, merge_scan_time 64.89ms, code_root_scan_time_ms 0.00ms, evac_time_ms 2.10ms, other_time 0.01ms, bytes_to_cop 14299928
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 1578644, merge_scan_time 79.03ms, code_root_scan_time_ms 0.00ms, evac_time_ms 2.40ms, other_time 0.01ms, bytes_to_cop 16346728
      [167.196s][trace][gc,ergo,cset ] GC(78) Prediction for group with 5 regions, card_rs_length 3729438, merge_scan_time 186.70ms, code_root_scan_time_ms 0.00ms, evac_time_ms 2.91ms, other_time 0.01ms, bytes_to_cop 19843904

      The last few groups take a significant part of pause time to include.

      Maybe it is reasonable to split up (or not even combine) groups that take a significant fraction of pause time goal/typical time available for old gen regions.

      (e.g. 10%)

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

              Created:
              Updated: