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

Improve InlineCacheBuffer pending queue management

XMLWordPrintable

    • b20

        During class unloading pending ICBuffer elements are put into a global pending queue to be released during a cleanup safepoint at some point later.

        This is a simple linked list which is protected by the global InlineCacheBuffer_lock.

        During code cache cleaning obtaining the lock is responsible for ~40% of total time clearing the ic callsites when unlinking is done in parallel (e.g. in G1, Shenandoah).

        (Clearing ic callsites is the largest contributor of time spent even after the change)

        A simple solution for this problem is to make the enqueuing lock free as cleaning the list is always done in the separate Cleanup safepoint.

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

                Created:
                Updated:
                Resolved: