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