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

Shenandoah: CodeCache_lock should always be held for initializing code cache iteration

    XMLWordPrintable

    Details

    • Subcomponent:
      gc
    • Resolved In Build:
      b22

      Backports

        Description

        Before concurrent GC, CodeCache_lock is not required for walking CodeCache at safepoints. But it is not the case for Shenandoah, as code cache iteration can be initialized and run through safepoints.

        To initialize concurrent code cache iteration, CodeCache_lock is required, even at safepoints, as the lock is acquired without safepoint check.

        There are few bugs in current implementation:
        1) No CodeCache_lock is held when initialize code cache iterator at safepoints.

        2) Does not notify waiters upon completion of iteration at safepoints

        3) Unnecessary held CodeCache_lock during concurrent code cache iteration.


          Attachments

            Issue Links

              Activity

                People

                Assignee:
                zgu Zhengyu Gu
                Reporter:
                zgu Zhengyu Gu
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: