< prev index next >

src/hotspot/share/runtime/thread.cpp

Print this page

        

*** 22,32 **** * */ #include "precompiled.hpp" #include "jvm.h" - #include "aot/aotLoader.hpp" #include "classfile/classLoader.hpp" #include "classfile/javaClasses.hpp" #include "classfile/moduleEntry.hpp" #include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" --- 22,31 ----
*** 1590,1671 **** } } } } - // Attempt to enlarge the array for per thread counters. - jlong* resize_counters_array(jlong* old_counters, int current_size, int new_size) { - jlong* new_counters = NEW_C_HEAP_ARRAY(jlong, new_size, mtJVMCI); - if (new_counters == NULL) { - return NULL; - } - if (old_counters == NULL) { - old_counters = new_counters; - memset(old_counters, 0, sizeof(jlong) * new_size); - } else { - for (int i = 0; i < MIN2((int) current_size, new_size); i++) { - new_counters[i] = old_counters[i]; - } - if (new_size > current_size) { - memset(new_counters + current_size, 0, sizeof(jlong) * (new_size - current_size)); - } - FREE_C_HEAP_ARRAY(jlong, old_counters); - } - return new_counters; - } - - // Attempt to enlarge the array for per thread counters. - bool JavaThread::resize_counters(int current_size, int new_size) { - jlong* new_counters = resize_counters_array(_jvmci_counters, current_size, new_size); - if (new_counters == NULL) { - return false; - } else { - _jvmci_counters = new_counters; - return true; - } - } - - class VM_JVMCIResizeCounters : public VM_Operation { - private: - int _new_size; - bool _failed; - - public: - VM_JVMCIResizeCounters(int new_size) : _new_size(new_size), _failed(false) { } - VMOp_Type type() const { return VMOp_JVMCIResizeCounters; } - bool allow_nested_vm_operations() const { return true; } - void doit() { - // Resize the old thread counters array - jlong* new_counters = resize_counters_array(JavaThread::_jvmci_old_thread_counters, JVMCICounterSize, _new_size); - if (new_counters == NULL) { - _failed = true; - return; - } else { - JavaThread::_jvmci_old_thread_counters = new_counters; - } - - // Now resize each threads array - for (JavaThreadIteratorWithHandle jtiwh; JavaThread *tp = jtiwh.next(); ) { - if (!tp->resize_counters(JVMCICounterSize, _new_size)) { - _failed = true; - break; - } - } - if (!_failed) { - JVMCICounterSize = _new_size; - } - } - - bool failed() { return _failed; } - }; - - bool JavaThread::resize_all_jvmci_counters(int new_size) { - VM_JVMCIResizeCounters op(new_size); - VMThread::execute(&op); - return !op.failed(); - } - #endif // INCLUDE_JVMCI // A JavaThread is a normal Java thread void JavaThread::initialize() { --- 1589,1598 ----
*** 1700,1712 **** _pending_failed_speculation = 0; _pending_transfer_to_interpreter = false; _in_retryable_allocation = false; _jvmci._alternate_call_target = NULL; assert(_jvmci._implicit_exception_pc == NULL, "must be"); - _jvmci_counters = NULL; if (JVMCICounterSize > 0) { ! resize_counters(0, (int) JVMCICounterSize); } #endif // INCLUDE_JVMCI _reserved_stack_activation = NULL; // stack base not known yet (void)const_cast<oop&>(_exception_oop = oop(NULL)); _exception_pc = 0; --- 1627,1641 ---- _pending_failed_speculation = 0; _pending_transfer_to_interpreter = false; _in_retryable_allocation = false; _jvmci._alternate_call_target = NULL; assert(_jvmci._implicit_exception_pc == NULL, "must be"); if (JVMCICounterSize > 0) { ! _jvmci_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtInternal); ! memset(_jvmci_counters, 0, sizeof(jlong) * JVMCICounterSize); ! } else { ! _jvmci_counters = NULL; } #endif // INCLUDE_JVMCI _reserved_stack_activation = NULL; // stack base not known yet (void)const_cast<oop&>(_exception_oop = oop(NULL)); _exception_pc = 0;
*** 3719,3731 **** initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK); initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK); initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK); initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK); initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK); - - // Eager box cache initialization only if AOT is on and any library is loaded. - AOTLoader::initialize_box_caches(CHECK); } void Threads::initialize_jsr292_core_classes(TRAPS) { TraceTime timer("Initialize java.lang.invoke classes", TRACETIME_LOG(Info, startuptime)); --- 3648,3657 ----
*** 3841,3851 **** // Initialize global data structures and create system classes in heap vm_init_globals(); #if INCLUDE_JVMCI if (JVMCICounterSize > 0) { ! JavaThread::_jvmci_old_thread_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtJVMCI); memset(JavaThread::_jvmci_old_thread_counters, 0, sizeof(jlong) * JVMCICounterSize); } else { JavaThread::_jvmci_old_thread_counters = NULL; } #endif // INCLUDE_JVMCI --- 3767,3777 ---- // Initialize global data structures and create system classes in heap vm_init_globals(); #if INCLUDE_JVMCI if (JVMCICounterSize > 0) { ! JavaThread::_jvmci_old_thread_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtInternal); memset(JavaThread::_jvmci_old_thread_counters, 0, sizeof(jlong) * JVMCICounterSize); } else { JavaThread::_jvmci_old_thread_counters = NULL; } #endif // INCLUDE_JVMCI
*** 3984,3994 **** if (CleanChunkPoolAsync) { Chunk::start_chunk_pool_cleaner_task(); } - // initialize compiler(s) #if defined(COMPILER1) || COMPILER2_OR_JVMCI #if INCLUDE_JVMCI bool force_JVMCI_intialization = false; if (EnableJVMCI) { --- 3910,3919 ----
< prev index next >