The serial reference processing closures in concurrent marking operate directly upon the global marking stack. These closures should be cleaned up or improved: * We should use instances on the parallel reference processing closures in the serial code. The worker id to use is 0. * If we choose to keep the serial specific closures, they should be changed to observe the G1RefProcDrainInterval flag. Since reference processing takes place in the remark pause - we would like to avoid marking stack overflows this late in the marking cycle. Either solution will reduce the likelihood of seeing a stack overflow during reference processing.
|