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

GenShen: Needs improved support for humongous allocation

    XMLWordPrintable

Details

    • gc

    Description

      1. If a humongous allocation cannot be satisfied, best to go immediately to full gc rather than doing a whole lot of (i.e. 64 by default) degenerated GCs before failing over to full GC.

      2. We can reduce the likelihood that humongous allocations will fail by making two adjustments to the existing implementation:
          a. Perform regular mutator allocations from the high end of memory rather than from low-end of memory. Perform humongous allocations from the low end of memory. This reduces pollution of low-end memory that might cause a humongous allocation to fail if the allocation request occurs within a cycle after most of the low-memory has already been allocated for regular mutator allocations.

          b. When we do an old-gen collection, if old-gen memory is scattered into low memory addresses (which will happen if certain young mutator regions are promoted in place, add to the list of mixed evacuation candidates some number of old-gen regions that occupy these low heap addresses, even if these regions do not have an abundance of garbage. This allows mixed evacuations to defragment the humongous allocation pool concurrently, before a full gc is required.

      Attachments

        Issue Links

          Activity

            People

              kdnilsen Kelvin Nilsen
              kdnilsen Kelvin Nilsen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: