RFR: Enable biased locking for Shenandoah by default

Andrew Haley aph at redhat.com
Mon Nov 20 14:32:06 UTC 2017


On 20/11/17 14:21, Aleksey Shipilev wrote:
> On 11/20/2017 03:11 PM, Andrew Haley wrote:
>> On 20/11/17 12:01, Aleksey Shipilev wrote:
>>> Few thoughts here:
>>>
>>>  *) Biased locking is inherently orthogonal to GC code, and is not visible even in gross GC pauses.
>>> Therefore, we have no observable improvements, as far as GC logging is concerned. (This is different
>>> for loop strip mining, that does improve gross pause times);
>>>
>>>  *) With the throughput hit we observe, it makes less sense to focus on orthogonal VM pauses.
>>
>> But biased-locking revocation does affect pause times. 
> 
> Not GC pauses though. Biased locking revocation is one of many
> _non-GC_ VM operations that may introduce latency hiccups.

Well, yes, obviously, but I don't understand why that is relevant.

>> Do we know how the worst-case pause times with Shenandoah's
>> CG-related pauses compare with revocation pauses?
>
> I think with large throughput hits that is mostly irrelevant.

> We disabled biased locking because throughput hits were minimal, and
> it improved the overall latency profile. This is mentioned on our
> Wiki as one of the suggested non-GC tunings. Now we see it hits
> throughput quite hard on some examples, and thus it invalidates one
> of the original conditions. Shenandoah still has the throughput hit
> budget to follow, and enabling something that depletes it completely
> is odd.

OK.  I guess it depends on how much, in a practical test, biased lock
revocation affects our wort-case pause times.

> It also makes Shenandoah better lined up for throughput comparisons
> against other collectors.

That's true: it is odd that enabling Shanandoah affects non-GC things
too.

-- 
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the shenandoah-dev mailing list