RFR: Skip RESOLVE in SATBBufferClosure if no forwarded objects are in heap
Aleksey Shipilev
shade at redhat.com
Wed Jun 20 11:43:26 UTC 2018
On 06/20/2018 01:35 PM, Roman Kennke wrote:
> Am 20.06.2018 um 13:28 schrieb Aleksey Shipilev:
>> http://cr.openjdk.java.net/~shade/shenandoah/satb-no-rb/webrev.01/
>>
>> I see SATBBufferClosure::do_buffer hot in one of the workloads. One of the things that can be helped
>> there is avoiding RB-inducing RESOLVE when we know there are no forwarded objects in heap. Instead
>> of reintroducing the whole bunch of template parameters, it is easier to check once before
>> processing the entire SATB buffer.
>>
>> Testing: tier3_gc_shenandoah
>>
>
> Ok, that makes sense.
>
> I wonder if it makes even more sense to simply transfer the oops to the
> worker's taskqueue? I think we do this in traversal.
I don't think so: normal concurrent cycle does test if SATB objects are marked in due course in
mark_through_ref, which filters >3/4 of them. Traversal does it inline in SATB buffer handling.
-Aleksey
More information about the shenandoah-dev
mailing list