8246181: Avoid walking SymbolTable during -Xshare:dump

All symbols at dump are created as permanent. Store them in a global array to avoid working SymbolTable.

Reviewed-by: iklam, ccheung
This commit is contained in:
Yumin Qi 2020-06-24 11:15:22 -07:00
parent 1550fd889b
commit 0e60e8ad85
5 changed files with 47 additions and 42 deletions

View file

@ -151,6 +151,7 @@ Mutex* CDSClassFileStream_lock = NULL;
#endif
Mutex* DumpTimeTable_lock = NULL;
Mutex* CDSLambda_lock = NULL;
Mutex* CDSAddSymbol_lock = NULL;
#endif // INCLUDE_CDS
#if INCLUDE_JVMCI
@ -344,8 +345,9 @@ void mutex_init() {
#if INCLUDE_JVMTI
def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, _safepoint_check_always);
#endif
def(DumpTimeTable_lock , PaddedMutex , leaf - 1, true, _safepoint_check_never);
def(DumpTimeTable_lock , PaddedMutex , leaf - 1, true, _safepoint_check_never);
def(CDSLambda_lock , PaddedMutex , leaf, true, _safepoint_check_never);
def(CDSAddSymbol_lock , PaddedMutex , leaf - 1, true, _safepoint_check_never);
#endif // INCLUDE_CDS
#if INCLUDE_JVMCI