Relates :
|
The CBL_mon locks used by G1 to protect the linked lists of completed buffers and the Shared_Q locks used to protect the non-JavaThread card and mark buffers have had the "nonleaf" lock rank since G1 was first integrated. The nonleaf lock rank has led to many lock ordering problems since it's not uncommon for code to attempt to write and oop while holding some leaf lock. The actual code executed under the G1 locks are some minor linked list manipulation and a notify operation to wake a concurrent G1 refinement thread waiting for work. Resolving this is required in order to fix JDK-8176100