RFR(s): 8213791: StringTable: Use get and insert

Robbin Ehn robbin.ehn at oracle.com
Tue Nov 13 17:21:44 UTC 2018


Hi all, please review.

It's problematic with allocating inside a critical section.
- You are not allowed to safepoint.
- Allocate cannot use GlobalCounter write side for lock free allocations.
- Easy to accidentally create deadlocks.
This patch moves the allocation for oopStorage outside the hashtable.
Performance is unaffected, if you don't hammer StringTable with multiple threads
using identical strings.

This is just a first small step, mainly for not limiting oopStorage.

Webrev:
http://cr.openjdk.java.net/~rehn/8213791/webrev/

CR:
https://bugs.openjdk.java.net/browse/JDK-8213791

Parent CR: ConcurrentHashTable: Do not allocate inside critical section
https://bugs.openjdk.java.net/browse/JDK-8209054

Passes t1-3, multiple thread same string intern manual test and jmh stress test.

Thanks, Robbin


More information about the hotspot-runtime-dev mailing list