RFR: 8151670: Unexpected concurrent refinement deactivation and reactivation
jon.masamitsu at oracle.com
Tue Mar 22 16:45:18 UTC 2016
Looks correct. I assume there will be a new version with a few
changes from Mikael's comments.
Couple of minor points.
Extra "to" (end of 84 and beginning of 85).
> 84 // function. If "consume" is true, the node's index is updated to
> 85 // to exclude the processed elements, e.g. up to the element for
> 186 assert(node->index() == buffer_size(), "apply said fully consumed");
maybe something a little more wordy
assert (node->index() == buffer_size(), "Buffer was not fully processed
as claimed: index " SIZE_FORMAT " buffer_size " SIZE_FORMAT,
Would this assertion actually fit better at the end of
153 bool DirtyCardQueueSet::apply_closure_to_buffer(CardTableEntryClosure* cl,
assert (!result || node->index() == buffer_size(), "Buffer was not fully
processed as claimed: index " SIZE_FORMAT " buffer_size " SIZE_FORMAT,
175 return result;
so that you don't need it in apply_closure_to_completed_buffer()
On 3/18/2016 4:10 PM, Kim Barrett wrote:
> Please review this change to the concurrent refinement threads to use
> SuspendibleThreadSet::yield, rather than deactivation, in response to
> an STS suspension request. This should mostly reduce the cost of
> coming out of a non-GC safepoint. See the CR for further discussion.
> JPRT, RBT GC Nightly, local specjbb2015.
More information about the hotspot-gc-dev