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

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

    XMLWordPrintable

Details

    • gc
    • 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

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

                Dates

                  Created:
                  Updated:
                  Resolved: