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

Remove ParallelGC non-CAS oldgen allocation

XMLWordPrintable

    • gc
    • b07

      ParallelGC oldgen allocation has both CAS-based and non-CAS-based implementations. The CAS-based allocations are used in places where concurrency is possible (and performance matters). The non-CAS variants are used where there isn't any concurrency, due to locking or being in a known single-threaded state (called from the VMThread in a safepoint).

      Obviously these can't be mixed; one can't be using the CAS and non-CAS variants concurrently. There doesn't appear to be any such concurrent uses. However, the potential for problems requires one to be aware of, and perhaps investigate the possibility when debugging.

      It would be simpler to just have the CAS variants and use them always. The non-CAS variants are not used in performace-critical places, so an unneeded CAS on those paths doesn't matter.

            kbarrett Kim Barrett
            kbarrett Kim Barrett
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: