Blocks :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
G1 allocates a SATBMarkQueue and a G1DirtyCardQueue in each Thread, but only uses the queues in Java threads. For non-Java threads, operations that need a queue presently use the shared queue in the associated queue set in the barrier set. This leads to contention problems in some places, since the shared queues involve locking. It would be better if the already allocated per-thread queues in the non-Java threads were also used. Note that this doesn't eliminate the need for the shared queues (JDK-8209974). There are places that can't be converted from using a shared queue to instead using the corresponding thread-local queue.