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

Reconsider stopping adding old collection set regions when occupancy threshold is reached

    Details

    • Subcomponent:
      gc

      Description

      In the default collector policy we stop adding old gen regions to the collection set when the waste threshold is reached.

      This can cause rather short mixed gcs that do not reclaim a lot, if anything. Since getting to a safepoint can take a considerable amount of time, this looks like a waste of throughput.

      Either lift this restriction, or size the young gen more appropriately to avoid wasting a lot of throughput.

      E.g.

      g1DefaultPolicy.cpp:351ff:
            if (reclaimable_perc <= threshold) {
              // We've added enough old regions that the amount of uncollected
              // reclaimable space is at or below the waste threshold. Stop
              // adding old regions to the CSet.
              log_debug(gc, ergo, cset)("Finish adding old regions to CSet (reclaimable percentage not over threshold). "
                                        "old %u regions, max %u regions, reclaimable: " SIZE_FORMAT "B (%1.2f%%) threshold: " UINTX_FORMAT "%%",
                                        old_region_length(), max_old_cset_length, reclaimable_bytes, reclaimable_perc, G1HeapWastePercent);
              break;
            }

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                tschatzl Thomas Schatzl
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: