RFR: 8308745: ObjArrayKlass::allocate_objArray_klass may call into java while holding a lock

David Holmes dholmes at openjdk.org
Thu Feb 1 05:25:05 UTC 2024


On Wed, 31 Jan 2024 18:57:23 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

> This change uses a claim token to allocate multi dimensional arrays rather than holding MultiArray_lock around metaspace allocation.  We can't hold a mutex around metaspace allocation because it can create an OOM object and it can also call into JVMTI for a resource exhausted event.  Also, we were creating mirrors and more metadata arrays while holding this lock.   See the bug for more details and other ideas considered and rejected.
> 
> Tested with tier1-7.

Can't you just use a Monitor to implement the claim token, rather than this lock-free approach? (Similar to how class initialization is handled.)

-------------

PR Review: https://git.openjdk.org/jdk/pull/17660#pullrequestreview-1855472920


More information about the serviceability-dev mailing list