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

Serial GC does not account GCs caused by TLAB allocation in GC overhead limit

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • tbd
    • None
    • hotspot
    • gc

      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.

            gli Guoxiong Li
            tschatzl Thomas Schatzl
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: