RFR: Avoid false sharing by padding the ShenandoahEvacOOMHandler field in ShenandoahHeap
Roman Kennke
rkennke at redhat.com
Sat Oct 20 07:49:18 UTC 2018
Hi Aleksey,
> On 10/19/2018 09:28 PM, Roman Kennke wrote:
>> The changeset "Sort ShenandoahHeap methods/fields into logical groups"
>> from Sept 21 reordered fields in ShenandoahHeap. Oddly, this has caused
>> a *severe* regression in Traversal GC (and presumably less severe with
>> adaptive) that caused throughput to drop by about 1/3. The reason for
>> this seems to be false sharing. Padding the evac_oom_handler field fixes it:
>>
>> http://cr.openjdk.java.net/~rkennke/evac-oom-false-sharing/webrev.00/
>
> Looks good!
>
> And here I thought we did everything right with ShenandoahSharedFlag on all hot paths. I'll revisit
> other places next week.
I'll push it in a bit, with the padding fixed as you suggested.
BTW, one reason why traversal is more affected by this that wb-assist is
disabled, because we cannot do bitmap-based scanning (or any scanning
for that matter), because we have no complete bitmap there. I'll think
about something. I guess that workers could help with actually doing a
little bit of traversal.
Cheers,
Roman
More information about the shenandoah-dev
mailing list