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

GenShen: Needs improved support for humongous allocation

XMLWordPrintable

    • gc

      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.

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

              Created:
              Updated:
              Resolved: