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

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

XMLWordPrintable

    • gc
    • b22

        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.


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

                Created:
                Updated:
                Resolved: