RFR(L): 8151601: Cleanup locking of the Reference pending list

Per Liden per.liden at oracle.com
Thu Mar 10 15:53:17 UTC 2016


Hi,

The SurrogateLockerThread is currently used by both G1 and CMS to lock 
the Reference pending list. However, there's quite a bit of unnecessary 
code duplication and special case handling in this area. This patch is 
an attempt to clean this up.

The main changes:

- All locking of the pending list is how done through the new 
ReferencePendingListLocker. This locker delegates to a locker thread if 
needed.

- The locking related code in instanceRefKlass was moved to the new 
ReferencePendingListLocker.

- What used to be the SurrogateLockerThread is now the 
ReferencePendingListLockerThread.

- The new virtual function 
CollectedHeap::needs_reference_pending_list_locker_thread() indicates if 
a collector needs a locker thread. G1 and CMS returns true here.

Bug: https://bugs.openjdk.java.net/browse/JDK-8151601
Webrev: http://cr.openjdk.java.net/~pliden/8151601/webrev.0/
Testing: jprt, vm.gc

cheers,
Per


More information about the hotspot-gc-dev mailing list