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

Parallel GC: Concurrent allocation after heap expansion may cause unnecessary full gc

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 17
    • 17
    • hotspot
    • gc
    • b10

      Currently, when expanding the old gen during evacuation (young gc), the code does not make sure that the thread actually expanding the heap gets any memory. A thread's post-expansion allocation attempt could fail because, after it has expanded the heap, other concurrent threads may claim some of the expanded space first, possibly enough that the residue is insufficient for the expanding thread's second allocation attempt.

      In this case the expanding thread will consider the entire allocation to have failed and Parallel GC start a full gc although there is still lots of memory available.

            kbarrett Kim Barrett
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: