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

Serial and CMS GC do not account GCs caused by TLAB allocation in GC overhead limit

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: P4
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: tbd
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
      gc

      Description

      Serial and CMS GC implement the GCOverheadLimit mechanism that makes the VM bail out with an OOME if the amount of GC activity has been too high recently.

      The implementation in CollectedHeap::common_mem_allocate_noinit() however only considers GC activity in the super-slow path when calling CollectedHeap::mem_allocate().

      Any GC issued during the call to allocate_from_tlab() is not considered in this calculation, but both Serial and CMS may run GCs at that time.

      So both collectors might issue many more GCs before bailing out.

      Parallel GC is fine, it does never issue a GC while trying to allocate a new TLAB.

      This seems to be a "day one" omission.

        Attachments

          Activity

            People

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

              Dates

              Created:
              Updated: