RFR: 8160539: Stack frame scanning acquires DerivedPointerTableGC_lock mutex
Thomas Schatzl
thomas.schatzl at oracle.com
Tue May 14 13:09:50 UTC 2019
Hi Kim,
On Fri, 2019-05-10 at 20:13 -0400, Kim Barrett wrote:
> Please review this change in the representation of the derived
> pointer table. It was a GrowableArray of pointers to derived pointer
> entries, protected by the DerivedPoitnerTableGC_lock. It is changed
> to a LockFreeStack of such entries.
>
> Running specjbb2015 with an instrumented VM found occasional
> contention for that lock; roughly half of the attempts to lock it
> found it already held by another thread. Comparing averages for G1
> Thread Roots times for specjbb2015 before and after the change,
> average was reduced by 8% (1ms), max by 16% (11.5ms), and total by 8%
> (27ms). Since the code involved is largely GC-agnostic, other
> collectors (except Serial) should see similar improvements.
>
> DerivedPointerTable::update_pointers() showed no significant change;
> it only takes about 0.1ms with or without the change of
> representation.
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8160539
>
> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8160539/open.00/
>
> Testing:
> mach5 tier1-5, plus the above mentioned specjbb2015 performance
> testing.
>
looks good.
Thomas
More information about the hotspot-dev
mailing list